PageRenderTime 28ms CodeModel.GetById 18ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 2ms

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