dbup不会自动创建schemaversions表

Question3r:

我从nuget安装了最新的DbUp版本4.4.0,并按照文档中所述的步骤进行操作

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

我正在使用MySQL数据库并创建了一个新的.NET Core控制台项目。

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

  • 我安装了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文件,并将其命名为1595961596-initial_script.sql,并将其定义为嵌入式资源。

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

表'my_database.schemaversions'不存在

我以为会schemaversions自动生成表格?有人知道如何解决吗?


如果有帮助:我将Linux与MariaDb一起使用。我也尝试用自己创建该表

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

.JournalToSqlTable("my_database", "schemaversions")

但是我得到这个错误

MySql.Data.MySqlClient.MySqlException:您的SQL语法有错误。请查看与您的MariaDB服务器版本相对应的手册,以在“ [my_database]”附近使用正确的语法。[schemaversions](第1行的[Id] int identity(1,1)不是null约束”

Indept_Studios:

表的schemaversions版本已正确添加,但问题是您将数据库放在了初始脚本中。DbUp不会再次添加它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章