invoicing 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +1 -0
  3. data/README.md +57 -0
  4. data/Rakefile +16 -37
  5. data/lib/invoicing.rb +20 -10
  6. data/lib/invoicing/cached_record.rb +9 -6
  7. data/lib/invoicing/class_info.rb +34 -34
  8. data/lib/invoicing/connection_adapter_ext.rb +4 -4
  9. data/lib/invoicing/countries/uk.rb +6 -6
  10. data/lib/invoicing/currency_value.rb +39 -32
  11. data/lib/invoicing/find_subclasses.rb +40 -15
  12. data/lib/invoicing/ledger_item.rb +166 -145
  13. data/lib/invoicing/ledger_item/pdf_generator.rb +108 -0
  14. data/lib/invoicing/ledger_item/render_html.rb +76 -73
  15. data/lib/invoicing/ledger_item/render_ubl.rb +37 -35
  16. data/lib/invoicing/line_item.rb +43 -38
  17. data/lib/invoicing/price.rb +1 -1
  18. data/lib/invoicing/tax_rate.rb +3 -6
  19. data/lib/invoicing/taxable.rb +37 -32
  20. data/lib/invoicing/time_dependent.rb +40 -40
  21. data/lib/invoicing/version.rb +4 -4
  22. data/lib/rails/generators/invoicing/invoicing_generator.rb +14 -0
  23. data/lib/rails/generators/invoicing/ledger_item/ledger_item_generator.rb +17 -0
  24. data/lib/rails/generators/invoicing/ledger_item/templates/migration.rb +25 -0
  25. data/lib/rails/generators/invoicing/ledger_item/templates/model.rb +5 -0
  26. data/lib/rails/generators/invoicing/line_item/line_item_generator.rb +17 -0
  27. data/lib/rails/generators/invoicing/line_item/templates/migration.rb +20 -0
  28. data/lib/rails/generators/invoicing/line_item/templates/model.rb +5 -0
  29. data/lib/rails/generators/invoicing/tax_rate/tax_rate_generator.rb +17 -0
  30. data/lib/rails/generators/invoicing/tax_rate/templates/migration.rb +14 -0
  31. data/lib/rails/generators/invoicing/tax_rate/templates/model.rb +3 -0
  32. metadata +110 -153
  33. data.tar.gz.sig +0 -1
  34. data/History.txt +0 -31
  35. data/Manifest.txt +0 -62
  36. data/PostInstall.txt +0 -10
  37. data/README.rdoc +0 -58
  38. data/script/console +0 -10
  39. data/script/destroy +0 -14
  40. data/script/generate +0 -14
  41. data/tasks/rcov.rake +0 -4
  42. data/test/cached_record_test.rb +0 -100
  43. data/test/class_info_test.rb +0 -253
  44. data/test/connection_adapter_ext_test.rb +0 -79
  45. data/test/currency_value_test.rb +0 -209
  46. data/test/find_subclasses_test.rb +0 -120
  47. data/test/fixtures/README +0 -7
  48. data/test/fixtures/cached_record.sql +0 -22
  49. data/test/fixtures/class_info.sql +0 -28
  50. data/test/fixtures/currency_value.sql +0 -29
  51. data/test/fixtures/find_subclasses.sql +0 -43
  52. data/test/fixtures/ledger_item.sql +0 -39
  53. data/test/fixtures/line_item.sql +0 -33
  54. data/test/fixtures/price.sql +0 -4
  55. data/test/fixtures/tax_rate.sql +0 -4
  56. data/test/fixtures/taxable.sql +0 -14
  57. data/test/fixtures/time_dependent.sql +0 -35
  58. data/test/ledger_item_test.rb +0 -444
  59. data/test/line_item_test.rb +0 -139
  60. data/test/models/README +0 -4
  61. data/test/models/test_subclass_in_another_file.rb +0 -3
  62. data/test/models/test_subclass_not_in_database.rb +0 -6
  63. data/test/price_test.rb +0 -9
  64. data/test/ref-output/creditnote3.html +0 -82
  65. data/test/ref-output/creditnote3.xml +0 -89
  66. data/test/ref-output/invoice1.html +0 -93
  67. data/test/ref-output/invoice1.xml +0 -111
  68. data/test/ref-output/invoice2.html +0 -86
  69. data/test/ref-output/invoice2.xml +0 -98
  70. data/test/ref-output/invoice_null.html +0 -36
  71. data/test/render_html_test.rb +0 -70
  72. data/test/render_ubl_test.rb +0 -44
  73. data/test/setup.rb +0 -37
  74. data/test/tax_rate_test.rb +0 -9
  75. data/test/taxable_test.rb +0 -180
  76. data/test/test_helper.rb +0 -72
  77. data/test/time_dependent_test.rb +0 -180
  78. metadata.gz.sig +0 -4
@@ -1,79 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper.rb')
2
-
3
- class ConnectionAdapterExtTest < Test::Unit::TestCase
4
-
5
- # Don't run these tests in database transactions.
6
- def setup
7
- end
8
- def teardown
9
- end
10
-
11
- def using_database(database_type)
12
- if database_type.to_sym == database_used_for_testing
13
- # If the test is for the main database type of this test suite, just run it
14
- yield
15
-
16
- elsif test_in_all_databases
17
- # Run the test having connected to the requested database type, or skip it
18
- # if we're not trying to test all database types
19
- begin
20
- ActiveRecord::Base.establish_connection(TEST_DB_CONFIG[database_type.to_sym])
21
- yield
22
- ensure
23
- connect_to_testing_database
24
- end
25
- end
26
- end
27
-
28
- def test_conditional_function_as_mysql
29
- using_database :mysql do
30
- assert_equal "IF(true, foo, bar)", Invoicing::ConnectionAdapterExt.conditional_function('true', 'foo', 'bar')
31
- end
32
- end
33
-
34
- def test_conditional_function_as_postgresql
35
- using_database :postgresql do
36
- assert_equal "CASE WHEN true THEN foo ELSE bar END",
37
- Invoicing::ConnectionAdapterExt.conditional_function('true', 'foo', 'bar')
38
- end
39
- end
40
-
41
- def test_conditional_function_as_sqlite3
42
- using_database :sqlite3 do
43
- assert_raise RuntimeError do
44
- Invoicing::ConnectionAdapterExt.conditional_function('true', 'foo', 'bar')
45
- end
46
- end
47
- end
48
-
49
- def test_group_by_all_columns_as_mysql
50
- using_database :mysql do
51
- assert_equal "`ledger_item_records`.`id2`",
52
- Invoicing::ConnectionAdapterExt.group_by_all_columns(MyLedgerItem)
53
- end
54
- end
55
-
56
- def test_group_by_all_columns_as_postgresql
57
- using_database :postgresql do
58
- assert_equal(
59
- '"ledger_item_records"."id2", "ledger_item_records"."type2", "ledger_item_records"."sender_id2", ' +
60
- '"ledger_item_records"."recipient_id2", "ledger_item_records"."identifier2", ' +
61
- '"ledger_item_records"."issue_date2", "ledger_item_records"."currency2", ' +
62
- '"ledger_item_records"."total_amount2", "ledger_item_records"."tax_amount2", ' +
63
- '"ledger_item_records"."status2", "ledger_item_records"."period_start2", ' +
64
- '"ledger_item_records"."period_end2", "ledger_item_records"."uuid2", ' +
65
- '"ledger_item_records"."due_date2", "ledger_item_records"."created_at", ' +
66
- '"ledger_item_records"."updated_at"',
67
- Invoicing::ConnectionAdapterExt.group_by_all_columns(MyLedgerItem))
68
- end
69
- end
70
-
71
- def test_group_by_all_columns_as_sqlite3
72
- using_database :sqlite3 do
73
- assert_raise RuntimeError do
74
- Invoicing::ConnectionAdapterExt.group_by_all_columns(MyLedgerItem)
75
- end
76
- end
77
- end
78
-
79
- end
@@ -1,209 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require File.join(File.dirname(__FILE__), 'test_helper.rb')
4
-
5
- # Test extending the default list of currency codes: include the Zimbabwe Dollar.
6
- # This also tests rounding and seriously large numbers. -- Sorry, you shouldn't make
7
- # jokes about this sort of thing. The people are suffering badly.
8
- Invoicing::CurrencyValue::CURRENCIES['ZWD'] = {:symbol => 'ZW$', :round => 5_000_000}
9
-
10
- class CurrencyValueTest < Test::Unit::TestCase
11
-
12
- class CurrencyValueRecord < ActiveRecord::Base
13
- validates_numericality_of :amount
14
- acts_as_currency_value :amount, :tax_amount, :currency => 'currency_code'
15
- end
16
-
17
- # In Finland and the Netherlands, Euro amounts are commonly rounded to the nearest 5 cents.
18
- class EurosInFinlandRecord < ActiveRecord::Base
19
- set_table_name 'no_currency_column_records'
20
- acts_as_currency_value :amount, :currency_code => 'EUR', :round => 0.05, :space => true
21
- end
22
-
23
- def test_format_small_number
24
- assert_equal "€0.02", CurrencyValueRecord.find(2).tax_amount_formatted
25
- end
26
-
27
- def test_format_thousands_separators
28
- assert_equal "€98,765,432.00", CurrencyValueRecord.find(2).amount_formatted
29
- end
30
-
31
- def test_format_no_decimal_point
32
- assert_equal "¥8,888", CurrencyValueRecord.find(4).amount_formatted
33
- end
34
-
35
- def test_format_suffix_unit
36
- assert_equal "5,432.00 元", CurrencyValueRecord.find(3).amount_formatted
37
- end
38
-
39
- def test_format_unknown_currency
40
- assert_equal "123.00 XXX", CurrencyValueRecord.find(5).amount_formatted
41
- end
42
-
43
- def test_format_with_custom_currency
44
- record = CurrencyValueRecord.new(:currency_code => 'ZWD', :amount => BigDecimal('50000000000'))
45
- assert_equal "ZW$50,000,000,000", record.amount_formatted # price of 1 egg on 18 July 2008
46
- end
47
-
48
- def test_format_without_currency_column
49
- assert_equal "€ 95.15", EurosInFinlandRecord.find(1).amount_formatted
50
- end
51
-
52
- def test_format_with_options
53
- assert_equal "0.02 €", CurrencyValueRecord.find(2).tax_amount_formatted(:suffix => true)
54
- end
55
-
56
- def test_format_custom_value
57
- assert_equal "€1,357.90", CurrencyValueRecord.find(2).format_currency_value(BigDecimal('1357.9'))
58
- end
59
-
60
- def test_format_negative_value_with_minus
61
- assert_equal "−€1,357.90", CurrencyValueRecord.find(2).format_currency_value(BigDecimal('-1357.9'))
62
- end
63
-
64
- def test_format_negative_value_with_hyphen
65
- assert_equal "-€1,357.90", CurrencyValueRecord.find(2).format_currency_value(BigDecimal('-1357.9'), :negative => :hyphen)
66
- end
67
-
68
- def test_format_negative_value_with_brackets
69
- assert_equal "(€1,357.90)", CurrencyValueRecord.find(2).format_currency_value(BigDecimal('-1357.9'), :negative => :brackets)
70
- end
71
-
72
- def test_load_from_database_and_format
73
- assert_equal BigDecimal('123.45'), CurrencyValueRecord.find(1).amount
74
- assert_equal "£123.45", CurrencyValueRecord.find(1).amount_formatted
75
- end
76
-
77
- def test_new_record_from_string_and_format
78
- record = CurrencyValueRecord.new(:amount => '44.44', :currency_code => 'USD')
79
- assert_equal BigDecimal('44.44'), record.amount
80
- assert_equal "$44.44", record.amount_formatted
81
- end
82
-
83
- def test_new_record_from_big_decimal_and_format
84
- record = CurrencyValueRecord.new(:amount => BigDecimal('3.33'), :currency_code => 'USD')
85
- assert_equal BigDecimal('3.33'), record.amount
86
- assert_equal "$3.33", record.amount_formatted
87
- end
88
-
89
- def test_standalone_formatting
90
- assert_equal "12.00 €", Invoicing::CurrencyValue::Formatter.format_value(:eur, 12, :suffix => true)
91
- end
92
-
93
- def test_standalone_currency_info
94
- assert_equal({:code => 'USD', :symbol => '$', :round => 0.01, :suffix => false,
95
- :space => false, :digits => 2}, Invoicing::CurrencyValue::Formatter.currency_info(:USD))
96
- end
97
-
98
- def test_assign_float_to_new_record_and_format
99
- record = CurrencyValueRecord.new
100
- record.amount = 44.44
101
- record.currency_code = 'USD'
102
- assert_equal BigDecimal('44.44'), record.amount
103
- assert_equal "$44.44", record.amount_formatted
104
- end
105
-
106
- def test_assign_to_new_record_omitting_currency
107
- record = CurrencyValueRecord.new
108
- record.amount = 44.44
109
- assert_equal BigDecimal('44.44'), record.amount
110
- assert_equal "44.44", record.amount_formatted
111
- end
112
-
113
- def test_assign_nothing_to_new_record_with_numericality_validation
114
- record = CurrencyValueRecord.new(:currency_code => 'USD')
115
- assert_nil record.amount
116
- assert_equal '', record.amount_formatted
117
- assert !record.valid?
118
- end
119
-
120
- def test_assign_nothing_to_new_record_without_numericality_validation
121
- record = CurrencyValueRecord.new(:amount => 1, :currency_code => 'USD')
122
- assert_nil record.tax_amount
123
- assert_equal '', record.tax_amount_formatted
124
- assert record.valid?
125
- record.save!
126
- assert_equal([{'amount' => '1.0000', 'tax_amount' => nil}],
127
- ActiveRecord::Base.connection.select_all("SELECT amount, tax_amount FROM currency_value_records WHERE id=#{record.id}"))
128
- end
129
-
130
- def test_assign_invalid_value_to_new_record_with_numericality_validation
131
- record = CurrencyValueRecord.new(:amount => 'plonk', :currency_code => 'USD')
132
- assert_equal BigDecimal('0.00'), record.amount
133
- assert_equal 'plonk', record.amount_before_type_cast
134
- assert_equal '', record.amount_formatted
135
- assert !record.valid?
136
- end
137
-
138
- def test_assign_invalid_value_to_new_record_without_numericality_validation
139
- record = CurrencyValueRecord.new(:amount => 1, :tax_amount => 'plonk', :currency_code => 'USD')
140
- assert_equal BigDecimal('0.00'), record.tax_amount
141
- assert_equal 'plonk', record.tax_amount_before_type_cast
142
- assert_equal '', record.tax_amount_formatted
143
- assert record.valid?
144
- record.save!
145
- assert_equal([{'amount' => '1.0000', 'tax_amount' => '0.0000'}],
146
- ActiveRecord::Base.connection.select_all("SELECT amount, tax_amount FROM currency_value_records WHERE id=#{record.id}"))
147
- end
148
-
149
- def test_overwrite_existing_record_with_valid_value
150
- record = CurrencyValueRecord.find(4)
151
- record.amount = '12.34'
152
- record.currency_code = 'EUR'
153
- assert_equal BigDecimal('12.34'), record.amount
154
- assert_equal '12.34', record.amount_before_type_cast
155
- assert_equal "€12.34", record.amount_formatted
156
- record.save!
157
- assert_equal([{'amount' => '12.3400', 'currency_code' => 'EUR'}],
158
- ActiveRecord::Base.connection.select_all("SELECT amount, currency_code FROM currency_value_records WHERE id=#{record.id}"))
159
- end
160
-
161
- def test_overwrite_existing_record_with_nil
162
- record = CurrencyValueRecord.find(4)
163
- record.tax_amount = nil
164
- assert_nil record.tax_amount
165
- assert_nil record.tax_amount_before_type_cast
166
- assert_equal '', record.tax_amount_formatted
167
- record.save!
168
- assert_equal([{'amount' => '8888.0000', 'tax_amount' => nil, 'currency_code' => 'JPY'}],
169
- ActiveRecord::Base.connection.select_all("SELECT amount, tax_amount, currency_code FROM currency_value_records WHERE id=#{record.id}"))
170
- end
171
-
172
- def test_rounding_on_new_record_with_currency_column
173
- record = CurrencyValueRecord.new(:amount => '1234.5678', :currency_code => 'JPY')
174
- assert_equal BigDecimal('1235'), record.amount
175
- assert_equal '1234.5678', record.amount_before_type_cast
176
- record.save!
177
- assert_equal([{'amount' => '1235.0000'}],
178
- ActiveRecord::Base.connection.select_all("SELECT amount FROM currency_value_records WHERE id=#{record.id}"))
179
- end
180
-
181
- def test_rounding_on_overwriting_record_with_currency_column
182
- record = CurrencyValueRecord.find(1)
183
- record.amount = 10.0/3.0
184
- assert_equal BigDecimal('3.33'), record.amount
185
- assert_equal 10.0/3.0, record.amount_before_type_cast
186
- record.save!
187
- assert_equal([{'amount' => '3.3300'}],
188
- ActiveRecord::Base.connection.select_all("SELECT amount FROM currency_value_records WHERE id=1"))
189
- end
190
-
191
- def test_rounding_on_new_record_with_default_currency
192
- record = EurosInFinlandRecord.new(:amount => '1234.5678')
193
- assert_equal BigDecimal('1234.55'), record.amount
194
- assert_equal '1234.5678', record.amount_before_type_cast
195
- record.save!
196
- assert_equal([{'amount' => '1234.5500'}],
197
- ActiveRecord::Base.connection.select_all("SELECT amount FROM no_currency_column_records WHERE id=#{record.id}"))
198
- end
199
-
200
- def test_rounding_on_overwriting_record_with_default_currency
201
- record = EurosInFinlandRecord.find(1)
202
- record.amount = '98.7654321'
203
- assert_equal BigDecimal('98.75'), record.amount
204
- assert_equal '98.7654321', record.amount_before_type_cast
205
- record.save!
206
- assert_equal([{'amount' => '98.7500'}],
207
- ActiveRecord::Base.connection.select_all("SELECT amount FROM no_currency_column_records WHERE id=1"))
208
- end
209
- end
@@ -1,120 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper.rb')
2
-
3
- # Associated with TestBaseclass
4
-
5
- class FindSubclassesAssociate < ActiveRecord::Base
6
- end
7
-
8
-
9
- # Primary hierarchy of classes for testing.
10
-
11
- class TestBaseclass < ActiveRecord::Base
12
- set_table_name 'find_subclasses_records'
13
- set_inheritance_column 'type_name' # usually left as default 'type'. rename to test renaming
14
- belongs_to :associate, :foreign_key => 'associate_id', :class_name => 'FindSubclassesAssociate'
15
- named_scope :with_coolness, lambda{|factor| {:conditions => {:coolness_factor => factor}}}
16
- extend Invoicing::FindSubclasses
17
- def self.coolness_factor; 3; end
18
- end
19
-
20
- class TestSubclass < TestBaseclass
21
-
22
- end
23
-
24
- class TestSubSubclass < TestSubclass
25
- def self.coolness_factor; 5; end
26
- end
27
-
28
- module TestModule
29
- class TestInsideModuleSubclass < TestBaseclass
30
- def self.coolness_factor; nil; end
31
- end
32
- end
33
-
34
- class TestOutsideModuleSubSubclass < TestModule::TestInsideModuleSubclass
35
- def self.coolness_factor; 999; end
36
- end
37
-
38
-
39
- # This class' table contains non-existent subclass names, to test errors
40
-
41
- class SomeSillySuperclass < ActiveRecord::Base
42
- extend Invoicing::FindSubclasses
43
- set_table_name 'find_subclasses_non_existent'
44
- end
45
-
46
-
47
- #####################
48
-
49
- class FindSubclassesTest < Test::Unit::TestCase
50
-
51
- def test_known_subclasses
52
- # All subclasses of TestBaseclass except for TestSubclassNotInDatabase
53
- expected = ['TestBaseclass', 'TestModule::TestInsideModuleSubclass', 'TestOutsideModuleSubSubclass',
54
- 'TestSubSubclass', 'TestSubclass', 'TestSubclassInAnotherFile']
55
- assert_equal expected, TestBaseclass.known_subclasses.map{|cls| cls.name}.sort
56
- end
57
-
58
- def test_known_subclasses_for_subtype
59
- expected = ['TestSubSubclass', 'TestSubclass']
60
- assert_equal expected, TestSubclass.known_subclasses.map{|cls| cls.name}.sort
61
- end
62
-
63
- def test_error_when_unknown_type_is_encountered
64
- assert_raise ActiveRecord::SubclassNotFound do
65
- SomeSillySuperclass.known_subclasses
66
- end
67
- end
68
-
69
- def test_class_method_condition_in_find
70
- assert_equal [1, 2, 4], TestBaseclass.all(:conditions => {:coolness_factor => 3}).map{|r| r.id}.sort
71
- end
72
-
73
- def test_class_method_condition_in_named_scope
74
- assert_equal [6], TestBaseclass.with_coolness(999).map{|r| r.id}
75
- end
76
-
77
- def test_class_method_condition_combined_with_column_condition_as_string_list
78
- assert_equal [2, 4], TestBaseclass.with_coolness(3).all(:conditions => ["value LIKE ?", 'B%']).map{|r| r.id}.sort
79
- end
80
-
81
- def test_class_method_condition_combined_with_column_condition_as_hash
82
- assert_equal [1], TestBaseclass.scoped(:conditions => {:value => 'Mooo!', :coolness_factor => 3}).all.map{|r| r.id}
83
- end
84
-
85
- def test_class_method_condition_combined_with_column_condition_on_joined_table_expressed_as_string
86
- conditions = {'find_subclasses_associates.value' => 'Cool stuff', 'find_subclasses_records.coolness_factor' => 3}
87
- assert_equal [1], TestBaseclass.all(:joins => :associate, :conditions => conditions).map{|r| r.id}
88
- end
89
-
90
- def test_class_method_condition_combined_with_column_condition_on_joined_table_expressed_as_hash
91
- conditions = {:find_subclasses_associates => {:value => 'Cool stuff'},
92
- :find_subclasses_records => {:coolness_factor => 3}}
93
- assert_equal [1], TestBaseclass.all(:joins => :associate, :conditions => conditions).map{|r| r.id}
94
- end
95
-
96
- def test_class_method_condition_with_same_table_name
97
- conditions = {'find_subclasses_records.value' => 'Baaa!', 'find_subclasses_records.coolness_factor' => 3}
98
- assert_equal [2, 4], TestBaseclass.all(:conditions => conditions).map{|r| r.id}.sort
99
- end
100
-
101
- def test_class_method_condition_with_list_of_alternatives
102
- assert_equal [3, 6], TestBaseclass.all(:conditions => {:coolness_factor => [5, 999]}).map{|r| r.id}.sort
103
- end
104
-
105
- def test_class_method_condition_with_range_of_alternatives
106
- assert_equal [1, 2, 3, 4, 6], TestBaseclass.all(:conditions => {:coolness_factor => 1..1000}).map{|r| r.id}.sort
107
- end
108
-
109
- def test_class_method_condition_invoked_on_subclass
110
- assert_equal [2], TestSubclass.with_coolness(3).all.map{|r| r.id}
111
- end
112
-
113
- def test_class_method_condition_false_type_coercion
114
- assert_equal [5], TestBaseclass.find(:all, :conditions => {:coolness_factor => false}).map{|r| r.id}
115
- end
116
-
117
- def test_class_method_condition_true_type_coercion
118
- assert_equal [1, 2, 3, 4, 6], TestBaseclass.all(:conditions => {:coolness_factor => true}).map{|r| r.id}.sort
119
- end
120
- end
@@ -1,7 +0,0 @@
1
- The SQL files in this folder are executed once on the current ActiveRecord database connection
2
- before the tests are run. Use them to set up a database schema and any contents (fixtures)
3
- required by the tests. Tests are run in transactions and rolled back, so the database should
4
- be restored back to the state defined in these files after each test.
5
-
6
- It's important that all tables are created with option ENGINE=InnoDB, otherwise MySQL creates
7
- MyISAM tables which do not support transactions.
@@ -1,22 +0,0 @@
1
- DROP TABLE IF EXISTS cached_records;
2
-
3
- CREATE TABLE cached_records (
4
- id2 int primary key auto_increment,
5
- value varchar(255)
6
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
7
-
8
- INSERT INTO cached_records(id2, value) values(1, 'One'), (2, 'Two');
9
-
10
- ALTER SEQUENCE cached_records_id2_seq start 1000;
11
-
12
-
13
- DROP TABLE IF EXISTS refers_to_cached_records;
14
-
15
- CREATE TABLE refers_to_cached_records (
16
- id int primary key auto_increment,
17
- cached_record_id int
18
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
19
-
20
- INSERT INTO refers_to_cached_records(id, cached_record_id) values(1, 1), (2, 1), (3, NULL);
21
-
22
- ALTER SEQUENCE refers_to_cached_records_id_seq start 1000;
@@ -1,28 +0,0 @@
1
- DROP TABLE IF EXISTS class_info_test_records;
2
-
3
- CREATE TABLE class_info_test_records (
4
- id int primary key auto_increment,
5
- value int,
6
- type varchar(255)
7
- );
8
-
9
- INSERT INTO class_info_test_records (id, value, type) values
10
- (1, 2, 'ClassInfoTestRecord'),
11
- (2, 3, 'ClassInfoTestSubclass'),
12
- (3, 3, 'ClassInfoTestSubclass2'),
13
- (4, 3, 'ClassInfoTestSubSubclass');
14
-
15
- ALTER SEQUENCE class_info_test_records_id_seq start 1000;
16
-
17
-
18
- DROP TABLE IF EXISTS class_info_test2_records;
19
-
20
- CREATE TABLE class_info_test2_records (
21
- id int primary key auto_increment,
22
- value int,
23
- okapi varchar(255)
24
- );
25
-
26
- INSERT INTO class_info_test2_records(id, value, okapi) values(1, 1, 'OKAPI!');
27
-
28
- ALTER SEQUENCE class_info_test2_records_id_seq start 1000;