From 480a9d6f4ed7442a10632484a37cf3498526f84b Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 10 Sep 2015 19:04:57 +0200 Subject: [PATCH 1/2] Truncates values from the db before shortening them --- db/migrate/20150909131133_set_username_limit.rb | 1 + db/migrate/20150909142534_set_organization_name_limit.rb | 1 + db/migrate/20150909153455_set_tag_name_limit.rb | 1 + 3 files changed, 3 insertions(+) diff --git a/db/migrate/20150909131133_set_username_limit.rb b/db/migrate/20150909131133_set_username_limit.rb index d7d17b4c2..e580dc855 100644 --- a/db/migrate/20150909131133_set_username_limit.rb +++ b/db/migrate/20150909131133_set_username_limit.rb @@ -1,5 +1,6 @@ class SetUsernameLimit < ActiveRecord::Migration def change + execute "ALTER TABLE users ALTER COLUMN username TYPE VARCHAR(60) USING SUBSTR(username, 1, 60)" change_column :users, :username, :string, limit: 60 end end diff --git a/db/migrate/20150909142534_set_organization_name_limit.rb b/db/migrate/20150909142534_set_organization_name_limit.rb index b7a8f3a63..b6ad45930 100644 --- a/db/migrate/20150909142534_set_organization_name_limit.rb +++ b/db/migrate/20150909142534_set_organization_name_limit.rb @@ -1,5 +1,6 @@ class SetOrganizationNameLimit < ActiveRecord::Migration def change + execute "ALTER TABLE organizations ALTER COLUMN name TYPE VARCHAR(60) USING SUBSTR(name, 1, 60)" change_column :organizations, :name, :string, limit: 60 end end diff --git a/db/migrate/20150909153455_set_tag_name_limit.rb b/db/migrate/20150909153455_set_tag_name_limit.rb index d4e43dcb8..838680731 100644 --- a/db/migrate/20150909153455_set_tag_name_limit.rb +++ b/db/migrate/20150909153455_set_tag_name_limit.rb @@ -1,5 +1,6 @@ class SetTagNameLimit < ActiveRecord::Migration def change + execute "ALTER TABLE tags ALTER COLUMN name TYPE VARCHAR(40) USING SUBSTR(name, 1, 40)" change_column :tags, :name, :string, limit: 40 end end From 52a773224db4c052bd944d2edaf88bad00c29710 Mon Sep 17 00:00:00 2001 From: kikito Date: Thu, 10 Sep 2015 19:14:05 +0200 Subject: [PATCH 2/2] Made migrations rollbackeable --- db/migrate/20150909131133_set_username_limit.rb | 6 +++++- db/migrate/20150909135032_remove_comment_title.rb | 2 +- db/migrate/20150909142534_set_organization_name_limit.rb | 6 +++++- db/migrate/20150909153455_set_tag_name_limit.rb | 6 +++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/db/migrate/20150909131133_set_username_limit.rb b/db/migrate/20150909131133_set_username_limit.rb index e580dc855..4ef71693a 100644 --- a/db/migrate/20150909131133_set_username_limit.rb +++ b/db/migrate/20150909131133_set_username_limit.rb @@ -1,6 +1,10 @@ class SetUsernameLimit < ActiveRecord::Migration - def change + def up execute "ALTER TABLE users ALTER COLUMN username TYPE VARCHAR(60) USING SUBSTR(username, 1, 60)" change_column :users, :username, :string, limit: 60 end + + def down + change_column :users, :username, :string, limit: nil + end end diff --git a/db/migrate/20150909135032_remove_comment_title.rb b/db/migrate/20150909135032_remove_comment_title.rb index 632a86a4f..daf224871 100644 --- a/db/migrate/20150909135032_remove_comment_title.rb +++ b/db/migrate/20150909135032_remove_comment_title.rb @@ -1,5 +1,5 @@ class RemoveCommentTitle < ActiveRecord::Migration def change - remove_column :comments, :title + remove_column :comments, :title, :string end end diff --git a/db/migrate/20150909142534_set_organization_name_limit.rb b/db/migrate/20150909142534_set_organization_name_limit.rb index b6ad45930..55ce2aa62 100644 --- a/db/migrate/20150909142534_set_organization_name_limit.rb +++ b/db/migrate/20150909142534_set_organization_name_limit.rb @@ -1,6 +1,10 @@ class SetOrganizationNameLimit < ActiveRecord::Migration - def change + def up execute "ALTER TABLE organizations ALTER COLUMN name TYPE VARCHAR(60) USING SUBSTR(name, 1, 60)" change_column :organizations, :name, :string, limit: 60 end + + def down + change_column :organizations, :name, :string, limit: nil + end end diff --git a/db/migrate/20150909153455_set_tag_name_limit.rb b/db/migrate/20150909153455_set_tag_name_limit.rb index 838680731..f43dfe3e5 100644 --- a/db/migrate/20150909153455_set_tag_name_limit.rb +++ b/db/migrate/20150909153455_set_tag_name_limit.rb @@ -1,6 +1,10 @@ class SetTagNameLimit < ActiveRecord::Migration - def change + def up execute "ALTER TABLE tags ALTER COLUMN name TYPE VARCHAR(40) USING SUBSTR(name, 1, 40)" change_column :tags, :name, :string, limit: 40 end + + def down + change_column :tags, :name, :string, limit: nil + end end