是否可以使用流畅的迁移器设置表的字符集?
我有以下sql
CREATE TABLE IF NOT EXISTS `stackoverflow` (
`foo` int(11) NOT NULL AUTO_INCREMENT,
`bar` TEXT DEFAULT NULL.
UNIQUE INDEX `foo_UNIQUE` ( `foo` ),
PRIMARY KEY ( `foo` )
)
ENGINE = InnoDB
CHARACTER SET = latin1
ROW_FORMAT = COMPACT;
我有以下c#代码:
Create.Table("stackoverflow")
.WithColumn("foo").AsInt32().NotNullable().PrimaryKey().Identity().Unique()
.WithColumn("bar").AsCustom("TEXT");
我想指定字符集,但我没有在文档中看到任何内容。有什么想法吗?
答案 0 :(得分:-2)
我不知道为什么当我最初尝试做这项工作时,我没有想到这一点。
解决方案是使用FluentMigrator执行普通的旧sql。我用这个MySql documentation来编写修订版。
[Migration(01, TransactionBehavior.Default, "Testing creating a table with charset")]
public class _0001_AddTableWithCharsetColumn : Migration
{
public override void Down()
{
Delete.Table("StackOverflow");
}
public override void Up()
{
var sql = @"CREATE TABLE StackOverflow
(
foo VARCHAR(5)
CHARACTER SET latin1
COLLATE latin1_german1_ci
);";
Execute.Sql(sql);
}
}
这是我创建的项目的link,用于验证它是否会根据需要更改列的字符集。