Как уже было описано в предыдущих статьях, рельсы работают с Базой данных через ActiveRecord(обьектная прослойка между Бд і web-приложением), настройка производится в одном единственном файле конфигурации. Возникает логичный вопрос - мы создали базу, настроили конфиги, так как же нам создать структуру БД??
Ответ - миграции. Что же такое миграция и зачем они вообще нужны?
Миграция - это файл который содержит описание создания в БД таблиц и полей. Чтобы создать миграцию воспользуйтесь или консолью или меню вашей IDE. В консоли надо набрать -
class CreateUsers < ActiveRecord
def self.up
create_table :users do |table|
table.column :username, :string, :null => false, :limit => 60
table.column :password, :string, :null => false
end
end
def self.down
drop_table :users
end
end
Детальнее типы данных рассмотрим в следующих статьях.
Таким образом отдельные миграции содержат отдельную логику создания новых структур. Код после def self.down нужен для того чтобы миграцию можно было "откатить назад". Все миграции складываются в отдельную папку и их имя файла начинается с цыфры которая показывает ее место в списке. Миграции исполняются строго по очереди. Из за того что предусмотрен откат - мы можем безболезненно вернутся в любое последнее стабильное состояние БД до изминения.
Благодаря тому что миграции хранятся в отдельных, легкочитаемых файлах - достаточно только загрузить их из SVN и проммигрировать - и каждый разработчик получит точную копию основной БД на свою машину. Нет необходимости делать SQL дампы, а потом руками переносить все в нашу локальную базу. Так же легко и закомитить миграции в репозиторий где проведя миграции (на сервере проводяться в автоматичном режиме) мы внесем изминения в нашу рабочую БД.
Ответ - миграции. Что же такое миграция и зачем они вообще нужны?
Миграция - это файл который содержит описание создания в БД таблиц и полей. Чтобы создать миграцию воспользуйтесь или консолью или меню вашей IDE. В консоли надо набрать -
ruby script/generate migration add_a_new_table. "Add a new table" - название миграции, которое должно описывать действие с БД.
Содержимое файла(Как пример приведем код создания таблицы юзеров):class CreateUsers < ActiveRecord
def self.up
create_table :users do |table|
table.column :username, :string, :null => false, :limit => 60
table.column :password, :string, :null => false
end
end
def self.down
drop_table :users
end
Детальнее типы данных рассмотрим в следующих статьях.
Таким образом отдельные миграции содержат отдельную логику создания новых структур. Код после def self.down нужен для того чтобы миграцию можно было "откатить назад". Все миграции складываются в отдельную папку и их имя файла начинается с цыфры которая показывает ее место в списке. Миграции исполняются строго по очереди. Из за того что предусмотрен откат - мы можем безболезненно вернутся в любое последнее стабильное состояние БД до изминения.
Благодаря тому что миграции хранятся в отдельных, легкочитаемых файлах - достаточно только загрузить их из SVN и проммигрировать - и каждый разработчик получит точную копию основной БД на свою машину. Нет необходимости делать SQL дампы, а потом руками переносить все в нашу локальную базу. Так же легко и закомитить миграции в репозиторий где проведя миграции (на сервере проводяться в автоматичном режиме) мы внесем изминения в нашу рабочую БД.
Комментариев нет:
Отправить комментарий