Guest User

Untitled

a guest
Jun 24th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. require "pg"
  2. require "migrate"
  3. require "../config/application"
  4.  
  5. command = ARGV[0]?
  6.  
  7. case command
  8. when "migrate"
  9. MigrationRunner.new.migrate
  10. when "rollback"
  11. MigrationRunner.new.rollback
  12. when "status"
  13. MigrationRunner.new.status
  14. when nil
  15. puts "Commands to manipulate the database: migrate, rollback, status"
  16. else
  17. puts "unknown command '#{command}"
  18. end
  19.  
  20. class MigrationRunner
  21. def initialize
  22. @migrator = Migrate::Migrator.new(
  23. DB.open(Amber.settings.database_url),
  24. Logger.new(STDOUT, level: Logger::DEBUG),
  25. File.join("db", "migrations"),
  26. "schema_version",
  27. "version"
  28. )
  29. end
  30.  
  31. getter migrator
  32.  
  33. def migrate
  34. migrator.to_latest
  35. end
  36.  
  37. def rollback
  38. migrator.down
  39. end
  40.  
  41. def pending?
  42. current_version = migrator.current_version
  43. current_version != migrator.next_version
  44. end
  45.  
  46. def status
  47. current_version = migrator.current_version
  48.  
  49. puts "Current version: #{migrator.current_version}."
  50. puts "Next version: #{migrator.next_version}."
  51. puts "There are pending migrations." if pending?
  52. end
  53. end
Add Comment
Please, Sign In to add comment