如何在Rails中将MySQL迁移到PostgreSQL

时间:2018-11-07 18:09:53

标签: mysql ruby-on-rails ruby postgresql

我试图将数据库从MySQL迁移到PostgreSQL。 每当我迁移时,都会出现此错误,我是PostgreSQL的新手,我希望有人有一个想法

errror message this is my schema

1 个答案:

答案 0 :(得分:0)

您的:options调用中的create_table是特定于MySQL的,因此您可以删除它们:

create_table :versions do |t|
  #...
end

您可能还需要更改其他几件事:

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