Rails 5.1迁移为表格生成BIGINT
(而不是Integer
)主键(changelog)。
是否可以在配置中的某个位置禁用它?如果是这样,如何禁用它?
答案 0 :(得分:6)
根据pull request,在配置级别上不可能这样做。
但实际上,您可以强制id
为整数,如下所示:
create_table :users, id: :integer do
另一方面,您必须意识到更改也会影响references
行为,所以您应该小心这些:
t.references :orders, type: :integer
看到这是重复代码过多,我建议你为此编写助手,覆盖默认方法,或者非常激进并分叉数据库适配器,根据需要更改它。我会选择第二个选项:
Migration[5.0]
和ActiveRecord::ConnectionAdapters::TableDefinition
create_table
中定义add_reference
,add_belongs_to
,references
,在第二个belongs_to
中定义belongs_to
references
应该只是别名public enum Frequency { Low, Medium, High }
public enum Severity { Low, Medium, High }
public class TicEntry {
public int TicEntryID { get; set; }
public int TicTypeID { get; set; }
public DateTime DateTime { get; set; }
public Frequency? Frequency { get; set; }
public Severity? Severity { get; set; }
public virtual TicType TicType { get; set; }
}
public enum Type { Motor, Vocal, ComMotor, ComVocal }
public class TicType
{
public int TicTypeID { get; set; }
public Type? Type { get; set; }
public virtual ICollection<TicEntry> TicEntry { get; set; }
}
)