dbup不会自动创建schemaversions表



我从nuget安装了最新的DbUp 4.4.0版本,并遵循了文档中描述的步骤

https://dbup.readthedocs.io/en/latest/

我使用的是MySQL数据库,并创建了一个新的.NET核心控制台项目。

  • 目前还没有数据库。我删除了它

  • 我安装了dbup和dbup-mysql包

  • 我从文档中复制了示例代码,并对其进行了一点修改

    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;
    }
    }
    
  • 我在该项目中创建了一个新的.sql文件,并将其命名为11595961596-initial_script.sql,并将它定义为嵌入式资源

DROP DATABASE IF EXISTS `my_database`;
CREATE DATABASE `my_database`;
  • 运行项目时,result.Successful返回false并引发此错误

表"my_database.schemaversions"不存在

我以为它会自动生成schemaversions表?有人知道怎么修吗?


如果有帮助:我在MariaDb上使用Linux。我还试着用自己创建那个表

https://dbup.readthedocs.io/en/latest/more-info/journaling/

.JournalToSqlTable("my_database", "schemaversions")

但是我得到这个错误

MySql.Data.MySqlClient.MySqlException:您的SQL中有错误句法;查看与MariaDB服务器对应的手册版本中要使用的正确语法'[my_database]。[schemaversions]([Id]int identity(1,1(在第1行处不是null约束

FWIW,我来这里是因为我看到了这个错误。。。除了在我的情况下,它似乎与这个旧错误有关:https://github.com/DbUp/DbUp/issues/188。另一个架构已具有schemaversions表。

相关内容

  • 没有找到相关文章

最新更新