我从 nuget 安装了最新的 DbUp 版本 4.4.0 并按照文档中描述的步骤操作
https://dbup.readthedocs.io/en/latest/
我正在使用 MySQL 数据库并创建了一个新的 .NET Core 控制台项目。
static void Main(string[] args)
{
var connectionString = "Server=localhost;Port=3306;Database=my_database;Uid=root;Pwd=admin;";
EnsureDatabase.For.MySqlDatabase(connectionString);
var upgrader = DeployChanges.To
.MySqlDatabase(connectionString)
.WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
.Build();
var result = upgrader.PerformUpgrade();
if (!result.Successful)
{
throw result.Error;
}
}
.
DROP DATABASE IF EXISTS `my_database`;
CREATE DATABASE `my_database`;
result.Successful
返回 false 并抛出此错误 Table 'my_database.schemaversions' doesn't exist
我以为它会生成
schemaversions
自动表?有人知道如何解决吗?如果有帮助:
我正在使用带有 MariaDb 的 Linux。我还尝试用自己的方式创建该表
https://dbup.readthedocs.io/en/latest/more-info/journaling/
.JournalToSqlTable("my_database", "schemaversions")
但后来我收到了这个错误MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[my_database].[schemaversions] ( [Id] int identity(1,1) not null constraint' at line 1
最佳答案
表架构版本 已正确添加,但问题是您在初始脚本中删除了数据库。 DbUp 不会再次添加它。
关于c# - dbup 不会自动创建 schemaversions 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63220911/