Лучший способ создать новую таблицу в Sqlite с использованием Ruby on Rails 2 - PullRequest
1 голос
/ 14 октября 2008

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

Ответы [ 3 ]

2 голосов
/ 14 октября 2008

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

  • Портативность: намного проще AR иметь дело с кроссплатформенным вкусом различия
  • Изменить контроль: ваш миграции могут управлять изменениями в оба направления с VERSION = вариант, что-то, что не так просто делать с SQL
  • Это путь Rails: следовать соглашениям Rails, если у вас есть веская причина не сделай так
  • Простота: вам не нужно беспокоиться о столбцах id и timestamp при использовании миграций, что избавляет вас от необходимости запоминать их, если вы работаете в SQL
2 голосов
/ 14 октября 2008

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

Некоторая полезная справка о том, как использовать миграции, доступна в 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 во все таблицы, как того требует rails). Затем вы можете использовать задачи rake для фактического применения миграций к вашей базе данных. Другое важное преимущество, которое дают вам миграции, заключается в том, что они являются обратимыми, поэтому ваша база данных имеет версии, и вы можете легко переходить с одной версии на другую.

1 голос
/ 14 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...