FEATURE: start tracking information about migrations that run

This commit adds a new tracking table that lets us know

- When a migration ran
- What version Discourse was at
- How long it took
- What version Rails was at

The built in tracking in Rails is very limited, does not track this info
This commit is contained in:
Sam
2016-02-17 17:47:47 +11:00
parent 3829c78526
commit bbbb09a6fb
3 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
class AddSchemaMigrationDetails < ActiveRecord::Migration
def up
# schema_migrations table is way too thin, does not give info about
# duration of migration or the date it happened, this migration together with the
# monkey patch adds a lot of information to the migration table
create_table :schema_migration_details do |t|
t.string :version, null: false
t.string :name
t.string :hostname
t.string :git_version
t.string :rails_version
t.integer :duration
t.string :direction # this really should be a pg enum type but annoying to wire up for little gain
t.datetime :created_at, null: false
end
add_index :schema_migration_details, [:version]
execute("INSERT INTO schema_migration_details(version, created_at)
SELECT version, current_timestamp
FROM schema_migrations
ORDER BY version
")
end
def down
drop_table :schema_migration_details
end
end