/todo/migrations.todo

http://zoop.googlecode.com/ · Unknown · 77 lines · 76 code · 1 blank · 0 comment · 0 complexity · e689c6f6ad57d913bfdac4564a586f07 MD5 · raw file

  1. - newer
  2. - types
  3. - php
  4. - DbConnection methods
  5. - chainable sql generation calls (php sql dsl)
  6. - template based
  7. - sql: put metadata inside sql comments
  8. - execute with psql
  9. - execute within php
  10. - new
  11. - functions
  12. - initialize database
  13. - copy a migration template from the module into the applications migrations and run it
  14. - have a special bootstrap migration that doesn't check for the migration tables but rather creates them
  15. - apply all migrations
  16. - this should probably throw and error if the database isn't in it's default state
  17. - apply all unappied migrations
  18. - reapply migration
  19. - reapply migrations start:end
  20. - checkpoint
  21. - dump the current state of the database
  22. - skip everything before this point
  23. - rollback the database to a certaint point
  24. - recreate the database up to a certaion point
  25. - categorize migrations or items inside migrations
  26. - by
  27. - schema
  28. - data
  29. - text
  30. - arbitrary keyword tagging system
  31. - have a way of only including or excluding lists of tags
  32. - branch (see below)
  33. - create a base prefix used for determining version numbers
  34. - default prefix is ''
  35. - the next version number is determined as follows
  36. - select max(last part of version number) where version number like '$prefix%';
  37. - if null or '' then 0
  38. - else prefix . '.' . value + 1
  39. - zap migration branch command for setting the prefix to the current max version number or some other arbitrary string
  40. - have a way of handling versioning and naming
  41. - you fork off a stable branch (version 1)
  42. - you make a change to the database in the stable branch and make a change (version 2)
  43. - this change may or may not also need to be applied to the dev branch
  44. - you make a change to the dev branch and make a change (version 2)
  45. - this may or may not need to be applied to the stable branch
  46. - you fork again, dev moves to stable (version 3)
  47. - create a database indepentdent format
  48. - yaml based
  49. - php array based
  50. - old
  51. - make sure that reverse migrations don't work without at least a very, very clear warning, etc
  52. + make it subsitiute "_"s for "."s when creating the class name
  53. - init the db
  54. - just have an init.sql file or whatever else the other modules do
  55. - apply migrations
  56. + have it scan the migrations directory for all available migrations
  57. + scan the db for applied migrations
  58. + apply anything that hasn't been done yet, in the proper order
  59. - allow you to selectively apply a specific migration
  60. - allow you to selectively apply a specific range of migration
  61. - removing migrations
  62. - allow you to selectively remove a specific migration
  63. - allow you to selectively remove a specific range of migration
  64. - allow you to remove the last set of migrations done
  65. - testing migrations
  66. - allow you to
  67. - namespacing
  68. - tablename prefix
  69. - schema prefix
  70. - complete schema info
  71. - dump the entire schema from the existing database after migrations are applied
  72. - implement creating sql snapshot files
  73. - create a blank tmp database
  74. - run all schema and data migrations on it
  75. - dump it to a sql file
  76. - drop tmp database