Как мне перенести MySQL на PostgreSQL в Rails - PullRequest
0 голосов
/ 07 ноября 2018

Я пытался перенести свою базу данных из MySQL в PostgreSQL. Всякий раз, когда я мигрировал, я получал эту ошибку, я новичок в PostgreSQL, я хотел бы, чтобы у кого-то была идея

errror message this is my schema

1 Ответ

0 голосов
/ 07 ноября 2018

Ваш :options для вашего create_table вызова специфичен для MySQL, поэтому вы можете просто отбросить его:

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

Есть пара других вещей, которые вы также можете изменить:

  1. t.string без :limit эквивалентно t.text с PostgreSQL. Возможно, вы захотите добавить :limit к ним, если вы предполагаете, что будет применяться ограничение размера по умолчанию для MySQL для varchar столбцов (если они есть). Или вы можете изменить его на t.text, чтобы он был более явным, чем столбец произвольного размера.
  2. В PostgreSQL нет опции :limit для t.text, поэтому вы должны отказаться от нее, чтобы избежать путаницы.
  3. В зависимости от того, что на самом деле представляет собой ваш столбец object, вы можете перенести его в jsonb. Например, если вы используете serialize :object в своей модели, то лучше использовать jsonb без сериализации в YAML, как это делает serialize.
  4. t.string с :limit (т.е. varchar(n) в базе данных) на самом деле немного дороже, чем t.string без :limit (который на самом деле просто t.text с другим именем). Если у вас нет строгой потребности в этом limit: 191, вы можете отказаться от него и позволить item_type без строгого ограничения размера. Вам не нужно отбрасывать :limit, но с PostgreSQL это не имеет большого значения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...