Rails migration: best way to retrieve current migration version
Solution 1:
There's a much nicer way: rake db:migrate:status
up 20120530222941 Create shenanigans
up 20120613030015 *** NO FILE ***
Indicating that I've deleted my latest migration file.
Or more simply:
> rake db:version
Current version: 20120613030015
Solution 2:
Rails 5.2
and higher:
> ApplicationRecord.connection.migration_context.current_version
(0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
=> 20200510093804
> ApplicationRecord.connection.migration_context.get_all_versions
(0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
=> [20191005164928,
20191006111502,
...
Rails up to 5.1.7
:
> ActiveRecord::Migrator.current_version
(0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
=> 20120110085802
> ActiveRecord::Migrator.get_all_versions
(0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
=> [20111114121610,
20111115091108,
...
Solution 3:
For Rails 5.x/6.x:
puts ApplicationRecord.connection.migration_context.current_version
puts ApplicationRecord.connection.migration_context.get_all_versions