legacy_data 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. data/Rakefile +37 -1
  2. data/VERSION +1 -1
  3. data/examples/blog_migration.rb +26 -0
  4. data/examples/create_j2ee_petstore.sql +91 -0
  5. data/examples/delete_j2ee_petstore.sql +14 -0
  6. data/examples/drupal_6_14.sql +809 -0
  7. data/examples/generated/blog_mysql/comment.rb +11 -0
  8. data/examples/generated/blog_mysql/factories.rb +9 -0
  9. data/examples/generated/blog_mysql/post.rb +11 -0
  10. data/examples/generated/blog_mysql/tag.rb +11 -0
  11. data/{spec/functional/expected → examples/generated/blog_sqlite3}/comment.rb +3 -4
  12. data/examples/generated/blog_sqlite3/factories.rb +12 -0
  13. data/{spec/functional/expected → examples/generated/blog_sqlite3}/post.rb +3 -3
  14. data/examples/generated/blog_sqlite3/tag.rb +11 -0
  15. data/examples/generated/drupal_mysql/access.rb +12 -0
  16. data/examples/generated/drupal_mysql/action.rb +11 -0
  17. data/examples/generated/drupal_mysql/actions_aid.rb +11 -0
  18. data/examples/generated/drupal_mysql/authmap.rb +13 -0
  19. data/examples/generated/drupal_mysql/batch.rb +12 -0
  20. data/examples/generated/drupal_mysql/block.rb +13 -0
  21. data/examples/generated/drupal_mysql/blocks_role.rb +12 -0
  22. data/examples/generated/drupal_mysql/box.rb +13 -0
  23. data/examples/generated/drupal_mysql/cache.rb +12 -0
  24. data/examples/generated/drupal_mysql/cache_block.rb +12 -0
  25. data/examples/generated/drupal_mysql/cache_filter.rb +12 -0
  26. data/examples/generated/drupal_mysql/cache_form.rb +12 -0
  27. data/examples/generated/drupal_mysql/cache_menu.rb +12 -0
  28. data/examples/generated/drupal_mysql/cache_page.rb +12 -0
  29. data/examples/generated/drupal_mysql/cache_update.rb +12 -0
  30. data/examples/generated/drupal_mysql/comment.rb +12 -0
  31. data/examples/generated/drupal_mysql/factories.rb +370 -0
  32. data/examples/generated/drupal_mysql/filter.rb +13 -0
  33. data/examples/generated/drupal_mysql/filter_format.rb +13 -0
  34. data/examples/generated/drupal_mysql/flood.rb +12 -0
  35. data/examples/generated/drupal_mysql/history.rb +12 -0
  36. data/examples/generated/drupal_mysql/menu_custom.rb +11 -0
  37. data/examples/generated/drupal_mysql/menu_link.rb +12 -0
  38. data/examples/generated/drupal_mysql/menu_router.rb +12 -0
  39. data/examples/generated/drupal_mysql/node.rb +13 -0
  40. data/examples/generated/drupal_mysql/node_access.rb +12 -0
  41. data/examples/generated/drupal_mysql/node_comment_statistic.rb +12 -0
  42. data/examples/generated/drupal_mysql/node_counter.rb +12 -0
  43. data/examples/generated/drupal_mysql/node_revision.rb +12 -0
  44. data/examples/generated/drupal_mysql/node_type.rb +12 -0
  45. data/examples/generated/drupal_mysql/permission.rb +12 -0
  46. data/examples/generated/drupal_mysql/role.rb +12 -0
  47. data/examples/generated/drupal_mysql/session.rb +12 -0
  48. data/examples/generated/drupal_mysql/system.rb +12 -0
  49. data/examples/generated/drupal_mysql/term_data.rb +12 -0
  50. data/examples/generated/drupal_mysql/term_hierarchy.rb +12 -0
  51. data/examples/generated/drupal_mysql/term_node.rb +12 -0
  52. data/examples/generated/drupal_mysql/term_relation.rb +13 -0
  53. data/examples/generated/drupal_mysql/term_synonym.rb +12 -0
  54. data/examples/generated/drupal_mysql/uploaded_files.rb +12 -0
  55. data/examples/generated/drupal_mysql/url_alias.rb +12 -0
  56. data/examples/generated/drupal_mysql/user.rb +14 -0
  57. data/examples/generated/drupal_mysql/users_role.rb +12 -0
  58. data/examples/generated/drupal_mysql/variable.rb +11 -0
  59. data/examples/generated/drupal_mysql/vocabulary.rb +12 -0
  60. data/examples/generated/drupal_mysql/vocabulary_node_type.rb +12 -0
  61. data/examples/generated/drupal_mysql/watchdog.rb +12 -0
  62. data/examples/generated/j2ee_petstore_mysql/address.rb +11 -0
  63. data/examples/generated/j2ee_petstore_mysql/category.rb +11 -0
  64. data/examples/generated/j2ee_petstore_mysql/factories.rb +57 -0
  65. data/examples/generated/j2ee_petstore_mysql/id_gen.rb +12 -0
  66. data/examples/generated/j2ee_petstore_mysql/item.rb +12 -0
  67. data/examples/generated/j2ee_petstore_mysql/product.rb +11 -0
  68. data/examples/generated/j2ee_petstore_mysql/seller_contact_info.rb +11 -0
  69. data/examples/generated/j2ee_petstore_mysql/tag.rb +13 -0
  70. data/examples/generated/j2ee_petstore_mysql/tag_item.rb +13 -0
  71. data/examples/generated/j2ee_petstore_mysql/ziplocation.rb +11 -0
  72. data/examples/generated/j2ee_petstore_oracle/address.rb +11 -0
  73. data/examples/generated/j2ee_petstore_oracle/category.rb +11 -0
  74. data/examples/generated/j2ee_petstore_oracle/factories.rb +52 -0
  75. data/examples/generated/j2ee_petstore_oracle/id_gen.rb +12 -0
  76. data/examples/generated/j2ee_petstore_oracle/item.rb +15 -0
  77. data/examples/generated/j2ee_petstore_oracle/product.rb +12 -0
  78. data/examples/generated/j2ee_petstore_oracle/sellercontactinfo.rb +11 -0
  79. data/examples/generated/j2ee_petstore_oracle/tag.rb +13 -0
  80. data/examples/generated/j2ee_petstore_oracle/ziplocation.rb +11 -0
  81. data/examples/generated/j2ee_petstore_sqlite3/address.rb +12 -0
  82. data/examples/generated/j2ee_petstore_sqlite3/category.rb +12 -0
  83. data/examples/generated/j2ee_petstore_sqlite3/factories.rb +57 -0
  84. data/examples/generated/j2ee_petstore_sqlite3/id_gen.rb +13 -0
  85. data/examples/generated/j2ee_petstore_sqlite3/item.rb +13 -0
  86. data/examples/generated/j2ee_petstore_sqlite3/product.rb +12 -0
  87. data/examples/generated/j2ee_petstore_sqlite3/seller_contact_info.rb +12 -0
  88. data/examples/generated/j2ee_petstore_sqlite3/tag.rb +13 -0
  89. data/examples/generated/j2ee_petstore_sqlite3/tag_item.rb +14 -0
  90. data/examples/generated/j2ee_petstore_sqlite3/ziplocation.rb +11 -0
  91. data/generators/models_from_tables/models_from_tables_generator.rb +5 -36
  92. data/generators/models_from_tables/templates/model.rb +5 -39
  93. data/legacy_data.gemspec +187 -11
  94. data/lib/active_record/connection_adapters/oracleenhanced_adapter.rb +85 -0
  95. data/lib/legacy_data.rb +5 -2
  96. data/lib/legacy_data/schema.rb +10 -7
  97. data/lib/legacy_data/table_class_name_mapper.rb +1 -1
  98. data/lib/legacy_data/table_definition.rb +120 -5
  99. data/spec/expected/post.rb +3 -3
  100. data/spec/functional/blog_adapterspec.rb +45 -0
  101. data/spec/functional/database.yml +45 -0
  102. data/spec/functional/drupal_adapterspec.rb +54 -0
  103. data/spec/functional/functional_spec_helper.rb +24 -0
  104. data/spec/functional/j2ee_petstore_adapterspec.rb +57 -0
  105. data/spec/legacy_data/schema_spec.rb +7 -3
  106. data/spec/legacy_data/table_definition_spec.rb +101 -10
  107. data/spec/models_from_tables_generator_spec.rb +19 -7
  108. data/spec/spec_helper.rb +6 -18
  109. metadata +193 -10
  110. data/examples/j2ee_petstore.sql +0 -512
  111. data/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +0 -61
  112. data/spec/functional/models_from_tables_spec.rb +0 -27
@@ -0,0 +1,57 @@
1
+ Factory.define :ziplocation do |z|
2
+ z.city 'some string'
3
+ z.state 'some string'
4
+ end
5
+
6
+ Factory.define :id_gen do |i|
7
+ i.gen_value 7
8
+ end
9
+
10
+ Factory.define :category do |c|
11
+ c.name 'some string'
12
+ c.description 'some string'
13
+ end
14
+
15
+ Factory.define :tag_item do |t|
16
+ t.tagid 7
17
+ t.itemid 'some string'
18
+ end
19
+
20
+ Factory.define :tag do |t|
21
+ t.tag 'some string'
22
+ t.refcount 7
23
+ end
24
+
25
+ Factory.define :product do |p|
26
+ p.categoryid 'some string'
27
+ p.name 'some string'
28
+ p.description 'some string'
29
+ end
30
+
31
+ Factory.define :item do |i|
32
+ i.productid 'some string'
33
+ i.name 'some string'
34
+ i.description 'some string'
35
+ i.price 12.3
36
+ i.address_addressid 'some string'
37
+ i.contactinfo_contactinfoid 'some string'
38
+ i.totalscore 7
39
+ i.numberofvotes 7
40
+ i.disabled 7
41
+ end
42
+
43
+ Factory.define :seller_contact_info do |s|
44
+ s.lastname 'some string'
45
+ s.firstname 'some string'
46
+ s.email 'some string'
47
+ end
48
+
49
+ Factory.define :address do |a|
50
+ a.street1 'some string'
51
+ a.city 'some string'
52
+ a.state 'some string'
53
+ a.zip 'some string'
54
+ a.latitude 12.3
55
+ a.longitude 12.3
56
+ end
57
+
@@ -0,0 +1,12 @@
1
+ class IdGen < ActiveRecord::Base
2
+ set_table_name :id_gen
3
+ set_primary_key :gen_key
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :gen_value
10
+ validates_presence_of :gen_value
11
+ end
12
+
@@ -0,0 +1,12 @@
1
+ class Item < ActiveRecord::Base
2
+ set_table_name :item
3
+ set_primary_key :itemid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :totalscore, :numberofvotes, :disabled
10
+ validates_presence_of :productid, :name, :description, :price, :address_addressid, :contactinfo_contactinfoid, :totalscore, :numberofvotes, :disabled
11
+ end
12
+
@@ -0,0 +1,11 @@
1
+ class Product < ActiveRecord::Base
2
+ set_table_name :product
3
+ set_primary_key :productid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :categoryid, :name, :description
10
+ end
11
+
@@ -0,0 +1,11 @@
1
+ class SellerContactInfo < ActiveRecord::Base
2
+ set_table_name :sellercontactinfo
3
+ set_primary_key :contactinfoid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :lastname, :firstname, :email
10
+ end
11
+
@@ -0,0 +1,13 @@
1
+ class Tag < ActiveRecord::Base
2
+ set_table_name :tag
3
+ set_primary_key :tagid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :refcount
10
+ validates_presence_of :tag, :refcount
11
+ validates_uniqueness_of :tag
12
+ end
13
+
@@ -0,0 +1,13 @@
1
+ class TagItem < ActiveRecord::Base
2
+ set_table_name :tag_item
3
+
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ #validates_uniqueness_of_multiple_column_constraint ["tagid", "itemid"]
10
+ validates_presence_of :tagid, :itemid
11
+ validates_numericality_of :tagid
12
+ end
13
+
@@ -0,0 +1,11 @@
1
+ class Ziplocation < ActiveRecord::Base
2
+ set_table_name :ziplocation
3
+ set_primary_key :zipcode
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :city, :state
10
+ end
11
+
@@ -0,0 +1,11 @@
1
+ class Address < ActiveRecord::Base
2
+ set_table_name :address
3
+ set_primary_key :addressid
4
+
5
+ # Relationships
6
+ has_many :items, :foreign_key => :address_addressid
7
+
8
+ # Constraints
9
+ validates_presence_of :street1, :city, :state, :zip, :latitude, :longitude
10
+ end
11
+
@@ -0,0 +1,11 @@
1
+ class Category < ActiveRecord::Base
2
+ set_table_name :category
3
+ set_primary_key :categoryid
4
+
5
+ # Relationships
6
+ has_many :products, :foreign_key => :categoryid
7
+
8
+ # Constraints
9
+ validates_presence_of :name, :description
10
+ end
11
+
@@ -0,0 +1,52 @@
1
+ Factory.define :ziplocation do |z|
2
+ z.city 'some string'
3
+ z.state 'some string'
4
+ end
5
+
6
+ Factory.define :id_gen do |i|
7
+ i.gen_value 7
8
+ end
9
+
10
+ Factory.define :category do |c|
11
+ c.name 'some string'
12
+ c.description 'some string'
13
+ end
14
+
15
+ Factory.define :tag do |t|
16
+ t.tag 'some string'
17
+ t.refcount 7
18
+ end
19
+
20
+ Factory.define :sellercontactinfo do |s|
21
+ s.lastname 'some string'
22
+ s.firstname 'some string'
23
+ s.email 'some string'
24
+ end
25
+
26
+ Factory.define :product do |p|
27
+ p.categoryid 'some string'
28
+ p.name 'some string'
29
+ p.description 'some string'
30
+ end
31
+
32
+ Factory.define :item do |i|
33
+ i.productid 'some string'
34
+ i.name 'some string'
35
+ i.description 'some string'
36
+ i.price 12.3
37
+ i.address_addressid 'some string'
38
+ i.contactinfo_contactinfoid 'some string'
39
+ i.totalscore 7
40
+ i.numberofvotes 7
41
+ i.disabled 7
42
+ end
43
+
44
+ Factory.define :address do |a|
45
+ a.street1 'some string'
46
+ a.city 'some string'
47
+ a.state 'some string'
48
+ a.zip 'some string'
49
+ a.latitude 12.3
50
+ a.longitude 12.3
51
+ end
52
+
@@ -0,0 +1,12 @@
1
+ class IdGen < ActiveRecord::Base
2
+ set_table_name :id_gen
3
+ set_primary_key :gen_key
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :gen_value
10
+ validates_presence_of :gen_value
11
+ end
12
+
@@ -0,0 +1,15 @@
1
+ class Item < ActiveRecord::Base
2
+ set_table_name :item
3
+ set_primary_key :itemid
4
+
5
+ # Relationships
6
+ belongs_to :address, :foreign_key => :address_addressid
7
+ belongs_to :product, :foreign_key => :productid
8
+ belongs_to :sellercontactinfo, :foreign_key => :contactinfo_contactinfoid
9
+ has_and_belongs_to_many :tags, :association_foreign_key => :tagid, :foreign_key => :itemid, :join_table => :tag_item
10
+
11
+ # Constraints
12
+ validates_numericality_of :totalscore, :numberofvotes, :disabled
13
+ validates_presence_of :productid, :name, :description, :price, :address_addressid, :contactinfo_contactinfoid, :totalscore, :numberofvotes, :disabled
14
+ end
15
+
@@ -0,0 +1,12 @@
1
+ class Product < ActiveRecord::Base
2
+ set_table_name :product
3
+ set_primary_key :productid
4
+
5
+ # Relationships
6
+ has_many :items, :foreign_key => :productid
7
+ belongs_to :category, :foreign_key => :categoryid
8
+
9
+ # Constraints
10
+ validates_presence_of :categoryid, :name, :description
11
+ end
12
+
@@ -0,0 +1,11 @@
1
+ class Sellercontactinfo < ActiveRecord::Base
2
+ set_table_name :sellercontactinfo
3
+ set_primary_key :contactinfoid
4
+
5
+ # Relationships
6
+ has_many :items, :foreign_key => :contactinfo_contactinfoid
7
+
8
+ # Constraints
9
+ validates_presence_of :lastname, :firstname, :email
10
+ end
11
+
@@ -0,0 +1,13 @@
1
+ class Tag < ActiveRecord::Base
2
+ set_table_name :tag
3
+ set_primary_key :tagid
4
+
5
+ # Relationships
6
+ has_and_belongs_to_many :items, :association_foreign_key => :itemid, :foreign_key => :tagid, :join_table => :tag_item
7
+
8
+ # Constraints
9
+ validates_numericality_of :refcount
10
+ validates_presence_of :tag, :refcount
11
+ validates_uniqueness_of :tag
12
+ end
13
+
@@ -0,0 +1,11 @@
1
+ class Ziplocation < ActiveRecord::Base
2
+ set_table_name :ziplocation
3
+ set_primary_key :zipcode
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :city, :state
10
+ end
11
+
@@ -0,0 +1,12 @@
1
+ class Address < ActiveRecord::Base
2
+ set_table_name :address
3
+ set_primary_key :addressid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :street1, :city, :state, :zip, :latitude, :longitude
10
+ validates_uniqueness_of :addressid
11
+ end
12
+
@@ -0,0 +1,12 @@
1
+ class Category < ActiveRecord::Base
2
+ set_table_name :category
3
+ set_primary_key :categoryid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :name, :description
10
+ validates_uniqueness_of :categoryid
11
+ end
12
+
@@ -0,0 +1,57 @@
1
+ Factory.define :ziplocation do |z|
2
+ z.city 'some string'
3
+ z.state 'some string'
4
+ end
5
+
6
+ Factory.define :id_gen do |i|
7
+ i.gen_value 7
8
+ end
9
+
10
+ Factory.define :category do |c|
11
+ c.name 'some string'
12
+ c.description 'some string'
13
+ end
14
+
15
+ Factory.define :tag_item do |t|
16
+ t.tagid 7
17
+ t.itemid 'some string'
18
+ end
19
+
20
+ Factory.define :tag do |t|
21
+ t.tag 'some string'
22
+ t.refcount 7
23
+ end
24
+
25
+ Factory.define :product do |p|
26
+ p.categoryid 'some string'
27
+ p.name 'some string'
28
+ p.description 'some string'
29
+ end
30
+
31
+ Factory.define :item do |i|
32
+ i.productid 'some string'
33
+ i.name 'some string'
34
+ i.description 'some string'
35
+ i.price 12.3
36
+ i.address_addressid 'some string'
37
+ i.contactinfo_contactinfoid 'some string'
38
+ i.totalscore 7
39
+ i.numberofvotes 7
40
+ i.disabled 7
41
+ end
42
+
43
+ Factory.define :seller_contact_info do |s|
44
+ s.lastname 'some string'
45
+ s.firstname 'some string'
46
+ s.email 'some string'
47
+ end
48
+
49
+ Factory.define :address do |a|
50
+ a.street1 'some string'
51
+ a.city 'some string'
52
+ a.state 'some string'
53
+ a.zip 'some string'
54
+ a.latitude 12.3
55
+ a.longitude 12.3
56
+ end
57
+
@@ -0,0 +1,13 @@
1
+ class IdGen < ActiveRecord::Base
2
+ set_table_name :id_gen
3
+ set_primary_key :gen_key
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :gen_value
10
+ validates_presence_of :gen_value
11
+ validates_uniqueness_of :gen_key
12
+ end
13
+
@@ -0,0 +1,13 @@
1
+ class Item < ActiveRecord::Base
2
+ set_table_name :item
3
+ set_primary_key :itemid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_numericality_of :totalscore, :numberofvotes, :disabled
10
+ validates_presence_of :productid, :name, :description, :price, :address_addressid, :contactinfo_contactinfoid, :totalscore, :numberofvotes, :disabled
11
+ validates_uniqueness_of :itemid
12
+ end
13
+
@@ -0,0 +1,12 @@
1
+ class Product < ActiveRecord::Base
2
+ set_table_name :product
3
+ set_primary_key :productid
4
+
5
+ # Relationships
6
+
7
+
8
+ # Constraints
9
+ validates_presence_of :categoryid, :name, :description
10
+ validates_uniqueness_of :productid
11
+ end
12
+