-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Milestone
Description
There is no way to do this at the moment. Database is created with default settings. It is not an issue on most cases, but there is a plenty of specific ones. For example, I have different collation on production server db, then on development machine.
After some research I've come up with workaround. Pretty ugly so far, but at least working
In Migrations\00000000000000_CreateIdentitySchema.cs add
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql($"DECLARE @dbname sysname = db_name(); " +
"EXEC('ALTER DATABASE [' + @dbname + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE');" +
"EXEC('ALTER DATABASE [' + @dbname + '] COLLATE Cyrillic_General_CI_AS');" +
"EXEC('ALTER DATABASE [' + @dbname + '] SET MULTI_USER') ", suppressTransaction: true);
...
}
It is ok. But the connection is reset after execution of this first migration so I have to run in separately.
I've come up with the following script (resetdb.cmd):
dotnet ef database update 00000000000000_CreateIdentitySchema
dotnet ef database update
So, there should be a proper way to do such things.
See also #6565
michaldudak, RedDeathGitHub, phehr2, voroninp, kevinoid and 3 more