Как установить кодировку при использовании миграции dotnet ef для создания базы данных? - PullRequest
0 голосов
/ 24 октября 2019

Я установил в строке подключения использование набора символов = utf8mb4:

  "ConnectionStrings": {
    "MyDatabase": "User Id=root;Host=127.0.0.1;Port=3306;Database=my_database;Character Set=utf8mb4;Password=password;"
  }

Я запустил dotnet ef migrations add InitialCreate, чтобы создать начальную миграцию с созданием базы данных, но при запуске dotnet ef database update база данныхсоздан с latin1 кодировкой.

1 Ответ

1 голос
/ 29 октября 2019

Набор символов, указанный в строке DSN / connection, указывает набор символов клиента, он будет использоваться для преобразования при отправке данных на сервер и с сервера.

Чтобы изменить набор символов по умолчанию сервера, который выимеют следующие параметры:

  • Указание набора символов при создании базы данных (или таблицы): CREATE SCHEMA myschema DEFAULT CHARSET= utf8 или CREATE TABLE mytable (a varchar(100)) CHARSET=utf8

  • Изменениенабор символов сервера для текущего сеанса: SET session character_set_server=utf8

  • Изменение конфигурации сервера путем добавления (или изменения) записи character-set-server=utf8 в файле конфигурации сервера.

SET global character_set_server=utf8 тоже будет работать, но после перезапуска сервера будет установлено предыдущее (по умолчанию) значение.

Если вы создаете новую таблицу (без указания набора символов)будет использоваться набор символов по умолчанию из базы данных / схемы.

...