我们正在为每个环境(例如" dev"," test"," prod"(使用不同的数据库架构名称,我正在尝试使用Entity Framework Core进行设置迁移。
我做的第一件事是Add-Migration Init
,正如预期的那样,它为初始模式创造了一个迁移。但是,此迁移硬编码架构名称:
migrationBuilder.EnsureSchema(
name: "dev");
migrationBuilder.CreateTable(
name: "MyTable",
schema: "dev",
columns: table => new
...
我想我可以修改dotnet ef
生成的迁移文件以根据环境变量使用架构名称,但是如果可能的话,我宁愿不修改这些自动生成的文件。
还有其他方法可以使用特定环境模式名称?
MS SQL Server支持用户的default_schema
。
您可以使用不同的默认方案创建不同的用户(您也可以限制此用户访问"其他"方案(,并在不同的环境中使用不同的连接字符串。