mirror of
https://github.com/iritmaximus/brewery.git
synced 2026-10-12 19:13:49 +03:00
5.11-12 implemented migration
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
class StylesController < ApplicationController
|
||||||
|
end
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
module StylesHelper
|
||||||
|
end
|
||||||
+1
-1
@@ -6,7 +6,7 @@ class Beer < ApplicationRecord
|
|||||||
has_many :users, through: :ratings
|
has_many :users, through: :ratings
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :style, presence: true
|
validates :style_id, presence: true
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
"#{name}, #{(Brewery.find_by_id brewery_id).name}"
|
"#{name}, #{(Brewery.find_by_id brewery_id).name}"
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
class Style < ApplicationRecord
|
||||||
|
end
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
class CreateStyles < ActiveRecord::Migration[7.0]
|
||||||
|
def self.up
|
||||||
|
create_table :styles do |t|
|
||||||
|
t.index :id
|
||||||
|
t.text :name
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
|
||||||
|
change_table :beers do |t|
|
||||||
|
t.rename :style, :old_style
|
||||||
|
t.references :style
|
||||||
|
end
|
||||||
|
|
||||||
|
Beer.all.each do |beer|
|
||||||
|
style = Style.find_by name: beer.old_style
|
||||||
|
if style.nil?
|
||||||
|
Style.create name: beer.old_style
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Beer.all.each do |beer|
|
||||||
|
style = Style.find_by name: beer.old_style
|
||||||
|
|
||||||
|
if style.nil?
|
||||||
|
Beer.update beer.id, { :style_id => 1 }
|
||||||
|
else
|
||||||
|
Beer.update beer.id, { :style_id => style.id }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
remove_column :beers, :old_style
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.down
|
||||||
|
add_column :beers, :style, :text
|
||||||
|
|
||||||
|
Beer.all.each do |beer|
|
||||||
|
style = Style.find_by id: beer.style_id
|
||||||
|
if style.nil?
|
||||||
|
Beer.update beer.id, { :style => "IPA" }
|
||||||
|
else
|
||||||
|
Beer.update beer.id, { :style => style.name }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
remove_column :beers, :style_id
|
||||||
|
remove_column :beers, :old_style
|
||||||
|
|
||||||
|
drop_table :styles
|
||||||
|
end
|
||||||
|
end
|
||||||
Generated
+10
-2
@@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.0].define(version: 2023_08_10_180821) do
|
ActiveRecord::Schema[7.0].define(version: 2023_11_20_133953) do
|
||||||
create_table "beerclubs", force: :cascade do |t|
|
create_table "beerclubs", force: :cascade do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.integer "founded"
|
t.integer "founded"
|
||||||
@@ -21,10 +21,11 @@ ActiveRecord::Schema[7.0].define(version: 2023_08_10_180821) do
|
|||||||
|
|
||||||
create_table "beers", force: :cascade do |t|
|
create_table "beers", force: :cascade do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "style"
|
|
||||||
t.integer "brewery_id"
|
t.integer "brewery_id"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
|
t.integer "style_id"
|
||||||
|
t.index ["style_id"], name: "index_beers_on_style_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "breweries", force: :cascade do |t|
|
create_table "breweries", force: :cascade do |t|
|
||||||
@@ -49,6 +50,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_08_10_180821) do
|
|||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "styles", force: :cascade do |t|
|
||||||
|
t.text "name"
|
||||||
|
t.datetime "created_at", null: false
|
||||||
|
t.datetime "updated_at", null: false
|
||||||
|
t.index ["id"], name: "index_styles_on_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "users", force: :cascade do |t|
|
create_table "users", force: :cascade do |t|
|
||||||
t.string "username"
|
t.string "username"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
|
|||||||
Reference in New Issue
Block a user