#Creating DB http://rusrails.ru/rails-database-migrations
Cначала создаем новое rails application >rails new your_application_name потом заходим в папку созданного приложения и открываем файл database.yml, который находится ..\your_application_name\config\ и меняем название баз данны на те, которые приятны нашему слуху:
development:
<<: *default
database: НА_ВАШЕ_УСМОТРЕНИЕ_dev
Заходим в папку, в которой находится приложение и пишем:
>rails db:create
Эт команда создаст ПУСТУЮ базу данных с названием НА_ВАШЕ_УСМОТРЕНИЕ_dev, в которую мы будем добавять таблицы!!!
Заходим в папку, в которой находится приложение и пишем: rails generate model YourTableName column_name:data_types. Например:
D:\projects\servicedesk\site>rails generate model DeviceBrand name:string title:string archived:boolean
это создает:
invoke active_record
create db/migrate/20141217120648_create_device_models.rb
create app/models/device_model.rb
invoke rspec
create spec/models/device_model_spec.rb
чтобы ТАБЛИЦА была занесена в нашу БД пишем в командной строке, предварительно зайдя в папку с приложением, rake db:migrate. Например:
D:\projects\servicedesk\site>rake db:migrate
Смотрим в нашу базу и видим появление таблицы ### device_models
Заходим в папку, в которой находится приложение и пишем: rails generate migration add_your_column_name_to_table_name new_column_name:data_types. Например:
D:\projects\servicedesk\site>rails generate migration add_enabled_to_device_brands enabled:boolean
это создает:
invoke active_record
create db/migrate/20141217123242_add_enabled_to_device_models.rb
чтобы КОЛОНКА была занесена в нашу БД пишем в командной строке, предварительно зайдя в папку с приложением, rake db:migrate. Например:
D:\projects\servicedesk\site>rake db:migrate
Смотрим в Таблицу в нашей базе и видим появление колонки ### enabled ##ROLLBACK Чтобы "откатить" миграции на необходимое количество шагов, нужно ввести в командную строку следующее:
D:\projects\servicedesk\site>rake db:rollback STEP=2
где 2 - это количество откатываемых назад миграций ##Change column Data Type http://stackoverflow.com/questions/5191405/ror-migration-change-a-column-type-from-date-to-datetime Для того, чтобы изменить тип данных колонки в таблице базы данных необходимо ввести в командной строке следующую команду:
rails g migration change_date_format_in_my_table
в Моем случае Я вводил так:
D:\projects\servicedesk\site>rails g migration change_date_format_in_devices
эта команда создает файл в папке
*\db\migrate\20141221184723_change_date_format_in_devices.rb
открываем этот файл и видим:
class ChangeDateFormatInDevices < ActiveRecord::Migration
def change
end
end
заменяем метод def change на два метода def up и def down:
class ChangeDateFormatInDevices < ActiveRecord::Migration
def up
change_column :my_table, :my_column, :datetime
end
def down
change_column :my_table, :my_column, :date
end
end
в МОЕМ случае я менял одновременно ДВЕ колонки со значения :integer на значение :string и МОЙ код выглядит так:
class ChangeDateFormatInDevices < ActiveRecord::Migration
def up
change_column :devices, :serial, :string
change_column :devices, :serials_additional, :string
end
def down
change_column :devices, :serial, :integer
change_column :devices, :serials_additional, :integer
end
end
далее пишем в командной строке
D:\projects\servicedesk\site>rake db:migrate
и смена типа данных в колонке готова!!!