- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 migratordotnet对于现有的数据库。我的数据库有大约 100 个表,我正在尝试生成初始迁移。
我试过
C:\migrations>Migrator.Console.exe SqlServer "Data Source=.\sqlexpress;Initial Catalog=my_database;Integrated Security = True;" MigracijeBaze.dll -dump InitialMigration.cs
不幸的是,生成的迁移具有 typeof(string) 的每一列。 Int、DateTime、Decimal 列被转换为字符串。例如,对于表 Godine
CREATE TABLE [dbo].[Godine](
[ID] [int] IDENTITY(1,1) NOT NULL,
[FirmaID] [nvarchar](2) NOT NULL,
[Godina] [int] NOT NULL,
[BazaSifri] [nvarchar](50) NOT NULL,
[BazaPodataka] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Godine] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
是生成迁移
Database.AddTable("Godine",
new Column("ID", typeof(String)),
new Column("FirmaID", typeof(String)),
new Column("Godina", typeof(String)),
new Column("BazaSifri", typeof(String)),
new Column("BazaPodataka", typeof(String)),
);
我做错了什么吗?进行初始迁移的最佳做法是什么?
最佳答案
我找到了答案。我已经下载了源代码并使用了调试器。似乎转储选项没有完全实现。
public virtual Column[] GetColumns(string table)
{
List<Column> columns = new List<Column>();
using (
IDataReader reader =
ExecuteQuery(
String.Format("select COLUMN_NAME, IS_NULLABLE from information_schema.columns where table_name = '{0}'", table)))
{
while (reader.Read())
{
Column column = new Column(reader.GetString(0), DbType.String);
string nullableStr = reader.GetString(1);
bool isNullable = nullableStr == "YES";
column.ColumnProperty |= isNullable ? ColumnProperty.Null : ColumnProperty.NotNull;
columns.Add(column);
}
}
return columns.ToArray();
}
数据库类型是硬编码的。我将为我的第一次迁移调用 sql 脚本。相关问题是 on the issue tracker
关于c# - Migratordotnet 创建初始迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104197/
如果有挂起的迁移,我想通过MSBuild停止构建过程。 但是我不想在构建项目时触发“迁移”目标。 因此,如何使用Migratordotnet仅检查待处理的迁移? 我只想将其用作标记来停止我的构建过程。
我正在尝试使用 migratordotnet对于现有的数据库。我的数据库有大约 100 个表,我正在尝试生成初始迁移。 我试过 C:\migrations>Migrator.Console.exe S
有人可以指出我在使用 MigratorDotNet 时创建索引的正确方向吗? 我有一些表需要多列索引。 谢谢 最佳答案 从 0.8 开始,这看起来不太可能。 patch for adding mult
我喜欢 Fluent NHibernate 来构建我的数据库,并且到目前为止还没有发现任何阻碍我前进的限制。 然而,在我当前的项目中,我希望在产品生命周期的早期发布到生产环境,因此预计随着我们的进展,
有没有办法从应用程序本身运行迁移? 谢谢! 最佳答案 我实例化了 Migrator 类的实例,然后您可以调用成员方法,例如 MigrateToLastVersion() 或 MigrateTo(lon
我是一名优秀的程序员,十分优秀!