我从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约束”
表的schemaversions版本已正确添加,但问题是您将数据库放在了初始脚本中。DbUp不会再次添加它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句