Лучший способ создать новую таблицу в Sqlite с помощью Ruby on Rails 2
-
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.