问题标签 [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.
.net - 如何使用 FluentMigrator 设置 ROWVERSION/TIMESTAMP 数据类型列?
我正在尝试在 SQL Server 表上使用ROWVERSION
(or TIMESTAMP
) 数据类型进行乐观并发控制。
我的表是使用 FluentMigrator 设置的,我不知道如何获取我需要的数据类型。根据微软关于 的文章ROWVERSION
,不可为空ROWVERSION
的列在语义上等同于binary(8)列;可空ROWVERSION
数据类型等效于varbinary(8)。
这是一个示例,并且尽可能接近...
.WithColumn("RowVersion").AsBinary(8).NotNullable();
是我无法弄清楚的线......没有.AsRowversion
或.AsTimestamp
选项。
提前致谢!
c# - 在 FluentMigrator 中分离测试数据
我想将测试数据(每个环境可能不同)与实际的数据库创建分开。
我知道您可以为此目的使用配置文件,但据我了解,您在其他迁移结束时调用它们一次。
我想要的是让它们基于迁移版本,所以:
- 迁移 X 创建表“用户”
- 测试数据分别插入“用户”
我该怎么做呢?
oracle11g - 使用 fluentmigrator 在 Oracle 中创建序列
我是 FluentMigrator 和 Oracle 的新手。我们正在尝试在我们的迁移脚本中支持 MsSql 服务器、Postgres 和 Oracle。
由于NHibernate在Oracle中使用sequence,在另外两个中使用identity,我们需要添加一个sequence;
这导致;
查看源代码我需要一个模式(参见 GenericGenerator.cs 第 360 行)?但是在这种情况下,模式是什么?
database-migration - 使用长时间运行的数据库迁移脚本
我正在试用FluentMigrator作为一种以最小的努力使我的数据库模式保持最新的方式。
对于我目前正在构建的版本,我需要运行一个数据库脚本来对大量现有数据行进行简单的更改(大约 2% 的 21,000,000 行需要更新)。
有太多数据需要在单个事务中更新(事务日志已满,脚本中止),所以我使用 WHILE 循环遍历表,一次更新 10,000 行,每批在一个单独的事务中。这很有效,大约需要 15 分钟才能完成。
现在我已经完成了脚本,我正在尝试将它集成到 FluentMigrator 中。
FluentMigrator 似乎在一个事务中运行单个批次的所有迁移。
如何让 FM 在单独的事务中运行每个迁移?
我可以告诉 FM 不要将事务用于特定迁移吗?
installation - 多平台产品安装程序中的流利迁移
我们为外部付费客户开发产品(即我们不是只为我们控制范围内的环境生产产品的内部 IT 职能部门),我们目前必须同时支持 SQL Server 2005+ 和 Oracle 10.2+ 作为后端。我们将 TeamCity 与 Wix 一起用于 CI 和构建,这些构建将发送给我们的测试团队,显然,当测试结束时,最终会发送给我们的客户。目前我们有无数的 SQL 脚本来升级数据库。在最基本的形式中,可能有一个 DDL 脚本和一个数据脚本(每个版本、每个平台),但也可能有包含存储过程的脚本,甚至是客户端特定的脚本。根据客户端升级的版本数量(例如 2.0 到 2.7),他们可能必须以正确的顺序运行多达两打脚本。
显然,人为错误的范围很大,并且目前无法降级,并且由于脚本的自动版本编号存在缺陷(以及数据库记录已运行的脚本的相当笨拙的方式),它不是总是清楚在数据库上运行了什么。显然,这不是一个很好的情况。
我正在研究使用 Fluent Migrator 或类似的东西——不一定是 Fluent——尝试为整个过程带来更多的顺序和版本控制,但是有很多关于如何使用的文章和示例与 CI 一起,我找不到将迁移集成到 MSI 安装程序或类似设备中的任何信息。
我想做的是将它作为我们整体安装程序的一部分,或者专门为升级/降级数据库制作一个。暂时不考虑任何客户端特定的迁移,甚至可以从这样的安装程序执行通用迁移吗?如果是这样,如何在单个安装程序中针对多个平台(即同时提供 SQL 和 Oracle 迁移并在运行时确定使用哪个平台)?
我的计划是将迁移保留在单个程序集中(类似于本文中的描述),并让安装程序根据创建安装程序时包含的信息执行适当的向上/向下迁移。假设可以做到,这听起来像是一个明智的解决方案,还是有更好的方法来管理我不知道的所有这些?
非常感谢
史蒂夫
nuget-package - VS2012 Express for web - FluentMigrator.Tools 1.0.3.0 - migrate.exe 在哪里?
我正在使用 VS Express for Web。我已将 FluentMigrator.Tools 1.0.3.0 添加到项目中。我应该在哪里看到 Migrate.exe?我一直在 bin/Debug 中寻找它(在我构建项目之后),但它无处可寻。
FluentMigrator.Tools 包中包含的其他 dll-s 也从项目的参考中丢失。
我错过了什么吗?我在哪里可以找到 migrate.exe?
好的,我知道我可以从 Nuget\Cache 获取它,但我怀疑这些工具将附加到我的项目中,构建后我可以在 bin/Debug 或 Release 文件夹中找到它们,我可以将它们发送出去与二进制文件。
c# - 使用 fluentmigrator 用每行的新值更新行数据
我正在使用 fluentmigrator 向表中添加一个新列。然后,我想用该列的唯一值更新表中的每一行。
目前当我使用:
它为所有行提供相同的值。
如何确保它为每一行调用该方法?
sql-server-2012 - fluentmigrator 是否适用于 SQL Server 2012?
fluentmigrator 的当前迭代是否适用于 SQL Server 2012?它未在受支持的数据库下列出。
database-migration - 数据库迁移后验证架构
有没有人对以下(潜在)情况有很好的解决方案?
使用 fluentmigrator 之类的数据库迁移工具,我们添加了一个迁移,该迁移本身是完全有效的,但会破坏其他一些数据库工件,直到运行时才会被发现。例如,删除在现有存储过程的正文中引用的列。
我需要能够在迁移后完整地验证生成的模式,最好和最有效的方法是什么?
fluent-migrator - 迁移如何发现 Fluent Migrator 中的数据库类型?
使用 Fluent Migrator,Migration 类方法如何发现正在迁移的数据库的性质?我需要知道它是 SQLite 还是其他东西。
我知道有一个名为 MigratorDotNetMigration 的遗留类,但我不想放弃 Fluent Migrator 的功能——这不是我正在处理的遗留迁移。