gpt4 book ai didi

c# - dbup 不会自动创建 schemaversions 表

转载 作者:行者123 更新时间:2023-12-04 09:15:51 24 4
gpt4 key购买 nike

我从 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 并抛出此错误

  • 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 SQLsyntax; check the manual that corresponds to your MariaDB serverversion 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com