答案 0 :(得分:0)
您的:options
调用中的create_table
是特定于MySQL的,因此您可以删除它们:
create_table :versions do |t|
#...
end
您可能还需要更改其他几件事:
t.string
的:limit
等同于PostgreSQL的t.text
。如果假设将应用MySQL对:limit
列的默认大小限制(如果有),则可能要向其中添加varchar
。或者,您可以将其更改为t.text
,以更明确地表明您想要一个任意大小的列。:limit
没有t.text
选项,因此您应该删除该选项以避免混淆。object
列的实际情况,您可能希望将其迁移到jsonb
。例如,如果您在模型中使用serialize :object
,则最好像jsonb
一样,而不像serialize
那样将其序列化为YAML。t.string
带有:limit
(即数据库中的varchar(n)
)实际上比没有t.string
(实际上只是{ {1}}(使用其他名称)。如果您对:limit
并没有严格的要求,则可以放弃它,并让t.text
不受严格的大小限制。您不必删除limit: 191
,但它在PostgreSQL中的作用并不大。