Лучший способ создать новую таблицу в Sqlite с помощью Ruby on Rails 2

StackOverflow https://stackoverflow.com/questions/200178

  •  03-07-2019
  •  | 
  •  

Вопрос

Итак, как лучше всего создавать новые таблицы в базе данных Sqlite в Rails 2?Я создал базу данных с помощью команды rake db:migrate.Так стоит ли мне писать отдельные sql-скрипты для создания базы данных или как-то использовать грабли.Мне не нужны строительные леса.

Это было полезно?

Решение

В основном используйте миграции.

Некоторую полезную информацию о том, как использовать миграцию, можно найти по адресу http://wiki.rubyonrails.org/rails/pages/understandingmigrations и http://wiki.rubyonrails.org/rails/pages/UsingMigrations.Хорошая шпаргалка, которую я использую, также доступна по адресу http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations.

По сути, при миграции используется код Ruby для создания таблиц базы данных.Гораздо проще (по крайней мере, на мой взгляд) использовать для этого хороший Ruby-код, а не SQL DDL — он также автоматически делает за вас различные вещи (например, добавляет id поля во все ваши таблицы, как того требуют рельсы).Затем вы можете использовать задачи rake, чтобы применить миграцию к вашей базе данных.Другое важное преимущество, которое дает миграция, заключается в том, что ее можно отменить, поэтому ваша база данных имеет версии, и вы можете легко переходить от одной версии к другой.

Другие советы

Старайтесь избегать написания скриптов таблиц CREATE/ALTER и вместо этого используйте миграции ActiveRecord.На ум приходит несколько причин:

  • Портативность:Гораздо проще позволить AR иметь дело с кроссплатформенными разногласиями
  • Изменить управление:Ваши миграции могут управлять изменениями в обоих направлениях с опцией версии = то, что нелегко сделать с SQL
  • Это путь Rails:Следуйте конвенциям Rails, если у вас нет веской причины не делать этого
  • Простота:вам не нужно беспокоиться о столбцах идентификаторов и временных меток при использовании миграций, что избавляет вас от необходимости запоминать их, если вы работаете в SQL.

Если вы не используете строительные леса, вам следует использовать script/generate migration создать файл миграции для каждой таблицы.Нет необходимости использовать sql-скрипты.После создания некоторых миграций вы можете применить их к своей базе данных, используя rake db:migrate.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top