diff options
Diffstat (limited to 'db/ci/migrate/20141031114419_migrate_build_to_commits.rb')
-rw-r--r-- | db/ci/migrate/20141031114419_migrate_build_to_commits.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/db/ci/migrate/20141031114419_migrate_build_to_commits.rb b/db/ci/migrate/20141031114419_migrate_build_to_commits.rb new file mode 100644 index 00000000000..dc90ec6d15e --- /dev/null +++ b/db/ci/migrate/20141031114419_migrate_build_to_commits.rb @@ -0,0 +1,21 @@ +class MigrateBuildToCommits < ActiveRecord::Migration + def change + execute <<eos +INSERT INTO commits ( sha, project_id, ref, before_sha, push_data ) +SELECT sha, project_id, ref, before_sha, push_data FROM builds +WHERE id IN (SELECT MAX(id) FROM builds GROUP BY sha) +eos + + + if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' + execute <<eos +UPDATE builds +SET commit_id = commits.id +FROM commits +WHERE commits.sha = builds.sha +eos + else + execute "UPDATE builds b, commits c SET b.commit_id = c.id WHERE c.sha = b.sha" + end + end +end |