40 lines
957 B
Ruby
40 lines
957 B
Ruby
|
class DropGitoriousFieldFromApplicationSettings < ActiveRecord::Migration
|
||
|
include Gitlab::Database::MigrationHelpers
|
||
|
|
||
|
# After the deploy the caches will be cold anyway
|
||
|
DOWNTIME = false
|
||
|
|
||
|
def up
|
||
|
require 'yaml'
|
||
|
|
||
|
import_sources = connection.execute('SELECT import_sources FROM application_settings;')
|
||
|
return unless import_sources.first # support empty databases
|
||
|
|
||
|
yaml = if Gitlab::Database.postgresql?
|
||
|
import_sources.values[0][0]
|
||
|
else
|
||
|
import_sources.first[0]
|
||
|
end
|
||
|
|
||
|
yaml = YAML.safe_load(yaml)
|
||
|
yaml.delete 'gitorious'
|
||
|
|
||
|
# No need for a WHERE clause as there is only one
|
||
|
connection.execute("UPDATE application_settings SET import_sources = #{update_yaml(yaml)}")
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
# noop, gitorious still yields a 404 anyway
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def connection
|
||
|
ActiveRecord::Base.connection
|
||
|
end
|
||
|
|
||
|
def update_yaml(yaml)
|
||
|
connection.quote(YAML.dump(yaml))
|
||
|
end
|
||
|
end
|