问题标签 [fluent-migrator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1217 浏览

.net - FluentMigrator 失败的迁移不回滚?

我刚开始尝试FluentMigrator。我注意到失败的迁移没有被回滚。这还没有实施吗?这似乎很糟糕,因为它使数据库处于损坏状态。

例如,下面的迁移在第二次尝试添加 Table1 时显然会失败(我这样做只是为了强制出错)。我希望迁移包含在事务中,然后在失败时回滚。

然而,实际上发生的是运行程序抛出一个错误(这会导致控制台应用程序崩溃)并且数据库留下了创建的 Table1 并且 VersionInfo 表中没有行。这似乎是一个糟糕的状态。

使用最新的 FluentMigrator 代码(截至今天)、Visual Studio 2008 并针对 SQL Server 2008 Express。

0 投票
5 回答
18076 浏览

fluent-migrator - 我可以使用 FluentMigrator 创建一列 nvarchar(MAX) 吗?

使用FluentMigrator时,默认创建Columnusing.AsString()会导致nvarchar(255). 有没有一种简单的方法(在我修改 FluentMigrator 代码之前)来创建类型的列nvarchar(MAX)

0 投票
5 回答
26073 浏览

c# - 从代码执行 FluentMigrator 迁移

FluentMigrator是否有任何教程或示例代码可用于从代码中执行迁移?一些“入门...”教程会很棒。我所能找到的只是FluentMigrator.Tests(单元测试),内部FluentMigrator源代码,它不像“入门......”那么有用。

我只想在项目中添加几个类并从项目运行迁移,而不需要外部工具。可以在 Fluent Migrator 中使用吗?就像是

我会从哪里打电话Program.Main()

0 投票
0 回答
818 浏览

sql-server - 超过 FluentMigrator & Lock 请求超时时间

我正在将我的开发平台转移到虚拟机(使用 VirtualBox),并安装了 Win7、VS2010 和 SQL Server Express 2008 R2。我有一个使用 FluentMigrator 来管理数据库的项目。

当我(尝试)运行初始迁移时,所有控制台消息都从 FluentMigrator 报告成功,但是当我查看数据库时,没有进行任何更改。此外,如果我尝试在运行迁移的几分钟内刷新 SQL Server Management Studio Express 中的架构,我会收到“超过锁定请求超时期限”消息。

不幸的是,SQL Server Express 没有附带 SQL Profiler。有没有办法在没有这个的情况下查看命中数据库的查询?

关于为什么 FluentMigrator 在找不到成功时会报告成功的任何其他想法?

0 投票
4 回答
4333 浏览

.net - FluentMigrator 迁移成功,但未更改数据库

我一定错过了一些非常基本的东西。

我正在处理一个遗留项目,我正在尝试将 FluentMigrator 纳入其中,因为我有一些有趣的数据库更改和数据迁移即将到来,我认为使用这个工具会变得更加容易。

对于初始迁移,我只想将数据库按原样升级到当前的生产版本。为了简化初始迁移,我编写了 SQL Server 2008 数据库的脚本,迁移将脚本命令作为一系列 SQL 命令执行。

为了测试它,我创建了一个完全空的数据库,并尝试使用以下命令从命令行运行它:

指定的版本是第一个迁移类的迁移属性上的时间戳。

在命令行,一切似乎都运行良好 - 整个脚本放大,并以:

但是,当我查看数据库时,它仍然是空的。里面绝对什么都没有。我的 Up 方法如下所示:

(仅供参考,我正在解析脚本而不是按原样运行它,因为我在发现它已死之前使用 Migrator.Net 开始,并且已经设置好了。)

谁能帮我一把?看起来好像没有提交事务,或者打开了一些让迁移进行试运行的命令行选项,但我没有看到它......

编辑:我尝试过的其他事情

为了确认连接字符串正在使用我期望的数据库,我重命名了数据库,然后出现了登录错误,正如预期的那样。

为了进一步测试,我缩短了脚本的长度,并尝试使用

而不是逐个命令,但我得到了相同的结果。这是该测试的输出(注意,我编辑了路径等):

然而数据库中没有表——甚至没有预期的 VersionInfo 表。

0 投票
2 回答
1203 浏览

c# - c#:Fluent Migrator/MigSharp/migratordotnet 支持在 C# 代码中使用 Application.ProductVersion 进行版本编号?

我对使用其中一种产品进行迁移非常感兴趣,但不仅在数据库中,而且在文件系统等中。

我最初的想法是我很想阅读 Application.ProductVersion 但它返回一个字符串但大多数迁移需要一个 LONG 或类似的?

我不知道是否有人这样做,但我的想法是拥有 2 个不同版本的迁移。

1 迁移产品,即更改目录或文件系统中的内容等我将使用 Application.ProductVersion

  1. 迁移数据库,我将使用我认为来自字段的数据库版本号?

有人这样用吗?

有什么想法可以支持这样的产品吗?

我的迁移并不总是特定于数据库,但有时特定于应用程序。

目前的工作方式似乎每个新版本都必须是一个整数,即 1、2、3、4 等......并且不考虑次要、修订等。

期待任何见解

谢谢

0 投票
2 回答
365 浏览

sql-server - 将视图回滚到同一视图的先前版本

我正在使用 FM 来部署数据库。作为该部署的一部分,我正在推出一个视图。变化是这样的:

R1:创建视图

R2:视图没有变化

R3:向视图添加一列

R4:没有变化

R5:从视图中删除列

该视图由源代码管理中的脚本创建。假设我部署了 R3,然后决定回滚到 R2(我正在考虑一个我不想让其处于奇怪状态的生产站点)。所以视图的脚本(drop/create)在本地文件中。我无法再次使用该脚本,因为本地版本位于 R3,但我希望它返回到 R1(或 R2)。

如何使用 FluentMigrator 可靠地将视图回滚到以前的版本?我能想到的唯一选择是将视图创建脚本保存在我的迁移类中的字符串中。但似乎我需要在我的课堂上将它的每个版本都放在一个字符串中——非常笨拙并且对团队来说很难推销。

我能想到的每一个现实的解决方案都与源代码控制的想法背道而驰——在本地拥有一个事物的单一版本并随着时间的推移跟踪它的变化。

0 投票
3 回答
2722 浏览

c# - FluentMigrator中迁移类的代码生成模板

是否有任何代码生成模板可用于 FluentMigrator 从 SQL (T-SQL) 语句生成迁移类?

理想情况下,我想获取包含用于创建表、索引等的语句的文本,并使用包含原始 SQL 语句的 Up 和 Down 方法生成迁移类。

我只关心基于开源或免费代码生成工具的解决方案。

0 投票
2 回答
1185 浏览

migration - 使用 FluentMigrator 的数据库特定迁移代码

我正在使用 fluentmigrator 创建数据库脚本,如何使用 fluentmigrator 运行特定于数据库的迁移代码?

0 投票
1 回答
1722 浏览

unit-testing - 如何对 FluentMigrator 迁移进行单元测试?

一般建议是我应该始终测试我的数据库迁移,但如何做到这一点似乎是一个保密的秘密;)

我选择的框架是 FluentMigration。

我想我想做的是:

  1. 将数据库迁移到 N-1。
  2. 保存一些数据。
  3. 将数据库迁移到 N。
  4. 读取数据并验证它没有丢失。
  5. 验证其他相关更改

但我不知道如何从我的单元测试中运行迁移。