Correct bugs in BackupUploaderColumns
This commit is contained in:
parent
ce831539f5
commit
7c9f097f1d
1 changed files with 13 additions and 17 deletions
|
@ -2,28 +2,27 @@
|
||||||
class BackupUploaderColumns < ActiveRecord::Migration[5.2]
|
class BackupUploaderColumns < ActiveRecord::Migration[5.2]
|
||||||
def up
|
def up
|
||||||
# copy all
|
# copy all
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |uploader_table|
|
||||||
create_table table.backup_table do |table|
|
create_table uploader_table.backup_table do |table|
|
||||||
table.references table.name, index:true
|
table.references uploader_table.name, foreign_key: true, index: { name: "idx_#{uploader_table.backup_table}_on_fk"}
|
||||||
table.fields.each do |f|
|
uploader_table.fields.each do |f|
|
||||||
table.string f.migrated_name
|
table.string f.migrated_name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# copy all
|
# copy all
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
||||||
|
|
||||||
execute <<-SQL
|
execute <<-SQL
|
||||||
INSERT INTO #{table.backup_table} (#{table.foreign_key}, #{table.fields.map(&:migrated_name).join(', ')})
|
INSERT INTO #{table.backup_table} (#{table.foreign_key}, #{table.fields.map(&:migrated_name).join(', ')})
|
||||||
VALUES ( SELECT id, #{table.fields.map(&:migrated_name).join(', ')} FROM #{table.name})
|
( SELECT id, #{table.fields.map(&:migrated_name).join(', ')} FROM #{table.name})
|
||||||
SQL;
|
SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
# delete columns
|
# delete columns
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
||||||
|
table.fields.each do |f|
|
||||||
fields.each do |f|
|
remove_column table.name, f.migrated_name
|
||||||
drop_column table.name, f.migrated_name
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -31,7 +30,7 @@ class BackupUploaderColumns < ActiveRecord::Migration[5.2]
|
||||||
def down
|
def down
|
||||||
## readd columns
|
## readd columns
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
||||||
fields.each do |f|
|
table.fields.each do |f|
|
||||||
add_column table.name, f.migrated_name, :string
|
add_column table.name, f.migrated_name, :string
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -40,16 +39,13 @@ class BackupUploaderColumns < ActiveRecord::Migration[5.2]
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each do |table|
|
||||||
execute <<-SQL
|
execute <<-SQL
|
||||||
UPDATE #{table.name} SET (#{table.fields.map(&:migrated_name).join(', ')}) = (
|
UPDATE #{table.name} SET (#{table.fields.map(&:migrated_name).join(', ')}) = (
|
||||||
SELECT (#{table.fields.map(&:migrated_name).join(', ')}) FROM #{table.backup_table}
|
SELECT #{table.fields.map{|f| table.backup_table + "." + f.migrated_name}.join(', ')} FROM #{table.backup_table}
|
||||||
WHERE #{table.backup_table}.#{table.foreign_key} = #{table.name}.id
|
WHERE #{table.backup_table}.#{table.foreign_key} = #{table.name}.id
|
||||||
)
|
)
|
||||||
|
SQL
|
||||||
SQL;
|
|
||||||
end
|
end
|
||||||
# delete tables
|
# delete tables
|
||||||
|
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each{ |entity, _| drop_table entity.backup_table}
|
||||||
HoudiniUpgrade::UPLOADERS_TO_MIGRATE.each{ |entity, _| drop_table table.backup_table}
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in a new issue