ensured_schema 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile.lock +23 -0
  3. data/Rakefile +19 -0
  4. data/ensured_schema.gemspec +4 -0
  5. data/lib/ensured_schema/column.rb +9 -0
  6. data/lib/ensured_schema/ensured_table.rb +53 -0
  7. data/lib/ensured_schema/mysql_column.rb +17 -0
  8. data/lib/ensured_schema/schema.rb +7 -0
  9. data/lib/ensured_schema/schema_statements.rb +69 -0
  10. data/lib/ensured_schema/version.rb +1 -1
  11. data/lib/ensured_schema.rb +5 -155
  12. data/test/cases/ensured_schema_test.rb +206 -0
  13. data/test/cases/helper.rb +70 -0
  14. data/test/cases/migration_test.rb +1523 -0
  15. data/test/cases/repair_helper.rb +50 -0
  16. data/test/config.rb +5 -0
  17. data/test/connections/native_mysql/connection.rb +25 -0
  18. data/test/migrations/broken/100_migration_that_raises_exception.rb +10 -0
  19. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
  20. data/test/migrations/duplicate/1_people_have_last_names.rb +9 -0
  21. data/test/migrations/duplicate/2_we_need_reminders.rb +12 -0
  22. data/test/migrations/duplicate/3_foo.rb +7 -0
  23. data/test/migrations/duplicate/3_innocent_jointable.rb +12 -0
  24. data/test/migrations/duplicate_names/20080507052938_chunky.rb +7 -0
  25. data/test/migrations/duplicate_names/20080507053028_chunky.rb +7 -0
  26. data/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +12 -0
  27. data/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +9 -0
  28. data/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +12 -0
  29. data/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +9 -0
  30. data/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +8 -0
  31. data/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +12 -0
  32. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
  33. data/test/migrations/missing/1_people_have_last_names.rb +9 -0
  34. data/test/migrations/missing/3_we_need_reminders.rb +12 -0
  35. data/test/migrations/missing/4_innocent_jointable.rb +12 -0
  36. data/test/migrations/valid/1_people_have_last_names.rb +9 -0
  37. data/test/migrations/valid/2_we_need_reminders.rb +12 -0
  38. data/test/migrations/valid/3_innocent_jointable.rb +12 -0
  39. data/test/models/author.rb +146 -0
  40. data/test/models/auto_id.rb +4 -0
  41. data/test/models/binary.rb +2 -0
  42. data/test/models/bird.rb +3 -0
  43. data/test/models/book.rb +4 -0
  44. data/test/models/categorization.rb +5 -0
  45. data/test/models/category.rb +34 -0
  46. data/test/models/citation.rb +6 -0
  47. data/test/models/club.rb +13 -0
  48. data/test/models/column_name.rb +3 -0
  49. data/test/models/comment.rb +29 -0
  50. data/test/models/company.rb +171 -0
  51. data/test/models/company_in_module.rb +61 -0
  52. data/test/models/computer.rb +3 -0
  53. data/test/models/contact.rb +16 -0
  54. data/test/models/contract.rb +5 -0
  55. data/test/models/course.rb +3 -0
  56. data/test/models/customer.rb +73 -0
  57. data/test/models/default.rb +2 -0
  58. data/test/models/developer.rb +101 -0
  59. data/test/models/edge.rb +5 -0
  60. data/test/models/entrant.rb +3 -0
  61. data/test/models/essay.rb +3 -0
  62. data/test/models/event.rb +3 -0
  63. data/test/models/guid.rb +2 -0
  64. data/test/models/item.rb +7 -0
  65. data/test/models/job.rb +5 -0
  66. data/test/models/joke.rb +3 -0
  67. data/test/models/keyboard.rb +3 -0
  68. data/test/models/legacy_thing.rb +3 -0
  69. data/test/models/matey.rb +4 -0
  70. data/test/models/member.rb +12 -0
  71. data/test/models/member_detail.rb +5 -0
  72. data/test/models/member_type.rb +3 -0
  73. data/test/models/membership.rb +9 -0
  74. data/test/models/minimalistic.rb +2 -0
  75. data/test/models/mixed_case_monkey.rb +3 -0
  76. data/test/models/movie.rb +5 -0
  77. data/test/models/order.rb +4 -0
  78. data/test/models/organization.rb +6 -0
  79. data/test/models/owner.rb +5 -0
  80. data/test/models/parrot.rb +16 -0
  81. data/test/models/person.rb +16 -0
  82. data/test/models/pet.rb +5 -0
  83. data/test/models/pirate.rb +70 -0
  84. data/test/models/post.rb +100 -0
  85. data/test/models/price_estimate.rb +3 -0
  86. data/test/models/project.rb +30 -0
  87. data/test/models/reader.rb +4 -0
  88. data/test/models/reference.rb +4 -0
  89. data/test/models/reply.rb +46 -0
  90. data/test/models/ship.rb +10 -0
  91. data/test/models/ship_part.rb +5 -0
  92. data/test/models/sponsor.rb +4 -0
  93. data/test/models/subject.rb +4 -0
  94. data/test/models/subscriber.rb +8 -0
  95. data/test/models/subscription.rb +4 -0
  96. data/test/models/tag.rb +7 -0
  97. data/test/models/tagging.rb +10 -0
  98. data/test/models/task.rb +3 -0
  99. data/test/models/topic.rb +80 -0
  100. data/test/models/toy.rb +6 -0
  101. data/test/models/treasure.rb +8 -0
  102. data/test/models/vertex.rb +9 -0
  103. data/test/models/warehouse_thing.rb +5 -0
  104. data/test/schema/mysql_specific_schema.rb +24 -0
  105. data/test/schema/postgresql_specific_schema.rb +114 -0
  106. data/test/schema/schema.rb +493 -0
  107. data/test/schema/schema2.rb +6 -0
  108. data/test/schema/sqlite_specific_schema.rb +25 -0
  109. metadata +237 -7
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ensured_schema
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Conley
@@ -17,8 +17,39 @@ cert_chain: []
17
17
 
18
18
  date: 2010-12-08 00:00:00 -05:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: activerecord
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 2
32
+ - 3
33
+ - 5
34
+ version: 2.3.5
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: mocha
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 43
46
+ segments:
47
+ - 0
48
+ - 9
49
+ - 8
50
+ version: 0.9.8
51
+ type: :development
52
+ version_requirements: *id002
22
53
  description: Smarter migrations
23
54
  email:
24
55
  - chris@chrisconley.me
@@ -31,10 +62,113 @@ extra_rdoc_files: []
31
62
  files:
32
63
  - .gitignore
33
64
  - Gemfile
65
+ - Gemfile.lock
34
66
  - Rakefile
35
67
  - ensured_schema.gemspec
36
68
  - lib/ensured_schema.rb
69
+ - lib/ensured_schema/column.rb
70
+ - lib/ensured_schema/ensured_table.rb
71
+ - lib/ensured_schema/mysql_column.rb
72
+ - lib/ensured_schema/schema.rb
73
+ - lib/ensured_schema/schema_statements.rb
37
74
  - lib/ensured_schema/version.rb
75
+ - test/cases/ensured_schema_test.rb
76
+ - test/cases/helper.rb
77
+ - test/cases/migration_test.rb
78
+ - test/cases/repair_helper.rb
79
+ - test/config.rb
80
+ - test/connections/native_mysql/connection.rb
81
+ - test/migrations/broken/100_migration_that_raises_exception.rb
82
+ - test/migrations/decimal/1_give_me_big_numbers.rb
83
+ - test/migrations/duplicate/1_people_have_last_names.rb
84
+ - test/migrations/duplicate/2_we_need_reminders.rb
85
+ - test/migrations/duplicate/3_foo.rb
86
+ - test/migrations/duplicate/3_innocent_jointable.rb
87
+ - test/migrations/duplicate_names/20080507052938_chunky.rb
88
+ - test/migrations/duplicate_names/20080507053028_chunky.rb
89
+ - test/migrations/interleaved/pass_1/3_innocent_jointable.rb
90
+ - test/migrations/interleaved/pass_2/1_people_have_last_names.rb
91
+ - test/migrations/interleaved/pass_2/3_innocent_jointable.rb
92
+ - test/migrations/interleaved/pass_3/1_people_have_last_names.rb
93
+ - test/migrations/interleaved/pass_3/2_i_raise_on_down.rb
94
+ - test/migrations/interleaved/pass_3/3_innocent_jointable.rb
95
+ - test/migrations/missing/1000_people_have_middle_names.rb
96
+ - test/migrations/missing/1_people_have_last_names.rb
97
+ - test/migrations/missing/3_we_need_reminders.rb
98
+ - test/migrations/missing/4_innocent_jointable.rb
99
+ - test/migrations/valid/1_people_have_last_names.rb
100
+ - test/migrations/valid/2_we_need_reminders.rb
101
+ - test/migrations/valid/3_innocent_jointable.rb
102
+ - test/models/author.rb
103
+ - test/models/auto_id.rb
104
+ - test/models/binary.rb
105
+ - test/models/bird.rb
106
+ - test/models/book.rb
107
+ - test/models/categorization.rb
108
+ - test/models/category.rb
109
+ - test/models/citation.rb
110
+ - test/models/club.rb
111
+ - test/models/column_name.rb
112
+ - test/models/comment.rb
113
+ - test/models/company.rb
114
+ - test/models/company_in_module.rb
115
+ - test/models/computer.rb
116
+ - test/models/contact.rb
117
+ - test/models/contract.rb
118
+ - test/models/course.rb
119
+ - test/models/customer.rb
120
+ - test/models/default.rb
121
+ - test/models/developer.rb
122
+ - test/models/edge.rb
123
+ - test/models/entrant.rb
124
+ - test/models/essay.rb
125
+ - test/models/event.rb
126
+ - test/models/guid.rb
127
+ - test/models/item.rb
128
+ - test/models/job.rb
129
+ - test/models/joke.rb
130
+ - test/models/keyboard.rb
131
+ - test/models/legacy_thing.rb
132
+ - test/models/matey.rb
133
+ - test/models/member.rb
134
+ - test/models/member_detail.rb
135
+ - test/models/member_type.rb
136
+ - test/models/membership.rb
137
+ - test/models/minimalistic.rb
138
+ - test/models/mixed_case_monkey.rb
139
+ - test/models/movie.rb
140
+ - test/models/order.rb
141
+ - test/models/organization.rb
142
+ - test/models/owner.rb
143
+ - test/models/parrot.rb
144
+ - test/models/person.rb
145
+ - test/models/pet.rb
146
+ - test/models/pirate.rb
147
+ - test/models/post.rb
148
+ - test/models/price_estimate.rb
149
+ - test/models/project.rb
150
+ - test/models/reader.rb
151
+ - test/models/reference.rb
152
+ - test/models/reply.rb
153
+ - test/models/ship.rb
154
+ - test/models/ship_part.rb
155
+ - test/models/sponsor.rb
156
+ - test/models/subject.rb
157
+ - test/models/subscriber.rb
158
+ - test/models/subscription.rb
159
+ - test/models/tag.rb
160
+ - test/models/tagging.rb
161
+ - test/models/task.rb
162
+ - test/models/topic.rb
163
+ - test/models/toy.rb
164
+ - test/models/treasure.rb
165
+ - test/models/vertex.rb
166
+ - test/models/warehouse_thing.rb
167
+ - test/schema/mysql_specific_schema.rb
168
+ - test/schema/postgresql_specific_schema.rb
169
+ - test/schema/schema.rb
170
+ - test/schema/schema2.rb
171
+ - test/schema/sqlite_specific_schema.rb
38
172
  has_rdoc: true
39
173
  homepage: http://rubygems.org/gems/ensured_schema
40
174
  licenses: []
@@ -69,5 +203,101 @@ rubygems_version: 1.3.7
69
203
  signing_key:
70
204
  specification_version: 3
71
205
  summary: Ensures database schema always matches your schema.rb file
72
- test_files: []
73
-
206
+ test_files:
207
+ - test/cases/ensured_schema_test.rb
208
+ - test/cases/helper.rb
209
+ - test/cases/migration_test.rb
210
+ - test/cases/repair_helper.rb
211
+ - test/config.rb
212
+ - test/connections/native_mysql/connection.rb
213
+ - test/migrations/broken/100_migration_that_raises_exception.rb
214
+ - test/migrations/decimal/1_give_me_big_numbers.rb
215
+ - test/migrations/duplicate/1_people_have_last_names.rb
216
+ - test/migrations/duplicate/2_we_need_reminders.rb
217
+ - test/migrations/duplicate/3_foo.rb
218
+ - test/migrations/duplicate/3_innocent_jointable.rb
219
+ - test/migrations/duplicate_names/20080507052938_chunky.rb
220
+ - test/migrations/duplicate_names/20080507053028_chunky.rb
221
+ - test/migrations/interleaved/pass_1/3_innocent_jointable.rb
222
+ - test/migrations/interleaved/pass_2/1_people_have_last_names.rb
223
+ - test/migrations/interleaved/pass_2/3_innocent_jointable.rb
224
+ - test/migrations/interleaved/pass_3/1_people_have_last_names.rb
225
+ - test/migrations/interleaved/pass_3/2_i_raise_on_down.rb
226
+ - test/migrations/interleaved/pass_3/3_innocent_jointable.rb
227
+ - test/migrations/missing/1000_people_have_middle_names.rb
228
+ - test/migrations/missing/1_people_have_last_names.rb
229
+ - test/migrations/missing/3_we_need_reminders.rb
230
+ - test/migrations/missing/4_innocent_jointable.rb
231
+ - test/migrations/valid/1_people_have_last_names.rb
232
+ - test/migrations/valid/2_we_need_reminders.rb
233
+ - test/migrations/valid/3_innocent_jointable.rb
234
+ - test/models/author.rb
235
+ - test/models/auto_id.rb
236
+ - test/models/binary.rb
237
+ - test/models/bird.rb
238
+ - test/models/book.rb
239
+ - test/models/categorization.rb
240
+ - test/models/category.rb
241
+ - test/models/citation.rb
242
+ - test/models/club.rb
243
+ - test/models/column_name.rb
244
+ - test/models/comment.rb
245
+ - test/models/company.rb
246
+ - test/models/company_in_module.rb
247
+ - test/models/computer.rb
248
+ - test/models/contact.rb
249
+ - test/models/contract.rb
250
+ - test/models/course.rb
251
+ - test/models/customer.rb
252
+ - test/models/default.rb
253
+ - test/models/developer.rb
254
+ - test/models/edge.rb
255
+ - test/models/entrant.rb
256
+ - test/models/essay.rb
257
+ - test/models/event.rb
258
+ - test/models/guid.rb
259
+ - test/models/item.rb
260
+ - test/models/job.rb
261
+ - test/models/joke.rb
262
+ - test/models/keyboard.rb
263
+ - test/models/legacy_thing.rb
264
+ - test/models/matey.rb
265
+ - test/models/member.rb
266
+ - test/models/member_detail.rb
267
+ - test/models/member_type.rb
268
+ - test/models/membership.rb
269
+ - test/models/minimalistic.rb
270
+ - test/models/mixed_case_monkey.rb
271
+ - test/models/movie.rb
272
+ - test/models/order.rb
273
+ - test/models/organization.rb
274
+ - test/models/owner.rb
275
+ - test/models/parrot.rb
276
+ - test/models/person.rb
277
+ - test/models/pet.rb
278
+ - test/models/pirate.rb
279
+ - test/models/post.rb
280
+ - test/models/price_estimate.rb
281
+ - test/models/project.rb
282
+ - test/models/reader.rb
283
+ - test/models/reference.rb
284
+ - test/models/reply.rb
285
+ - test/models/ship.rb
286
+ - test/models/ship_part.rb
287
+ - test/models/sponsor.rb
288
+ - test/models/subject.rb
289
+ - test/models/subscriber.rb
290
+ - test/models/subscription.rb
291
+ - test/models/tag.rb
292
+ - test/models/tagging.rb
293
+ - test/models/task.rb
294
+ - test/models/topic.rb
295
+ - test/models/toy.rb
296
+ - test/models/treasure.rb
297
+ - test/models/vertex.rb
298
+ - test/models/warehouse_thing.rb
299
+ - test/schema/mysql_specific_schema.rb
300
+ - test/schema/postgresql_specific_schema.rb
301
+ - test/schema/schema.rb
302
+ - test/schema/schema2.rb
303
+ - test/schema/sqlite_specific_schema.rb