ibm_db 2.5.14-x86-linux
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.
- checksums.yaml +7 -0
- data/CHANGES +210 -0
- data/LICENSE +18 -0
- data/MANIFEST +14 -0
- data/ParameterizedQueries README +39 -0
- data/README +225 -0
- data/ext/Makefile.nt32 +181 -0
- data/ext/Makefile.nt32.191 +212 -0
- data/ext/extconf.rb +127 -0
- data/ext/ibm_db.c +11719 -0
- data/ext/ruby_ibm_db.h +240 -0
- data/ext/ruby_ibm_db_cli.c +845 -0
- data/ext/ruby_ibm_db_cli.h +489 -0
- data/init.rb +42 -0
- data/lib/IBM_DB.rb +2 -0
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3020 -0
- data/lib/active_record/connection_adapters/ibm_db_pstmt.rb +1965 -0
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +2 -0
- data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -0
- data/lib/ibm_db.rb +8 -0
- data/lib/linux/rb18x/ibm_db.so +0 -0
- data/lib/linux/rb19x/ibm_db.so +0 -0
- data/lib/linux/rb2x/ibm_db.so +0 -0
- data/test/cases/adapter_test.rb +207 -0
- data/test/cases/associations/belongs_to_associations_test.rb +711 -0
- data/test/cases/associations/cascaded_eager_loading_test.rb +181 -0
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +851 -0
- data/test/cases/associations/join_model_test.rb +743 -0
- data/test/cases/attribute_methods_test.rb +822 -0
- data/test/cases/base_test.rb +2133 -0
- data/test/cases/calculations_test.rb +482 -0
- data/test/cases/migration_test.rb +2408 -0
- data/test/cases/persistence_test.rb +642 -0
- data/test/cases/query_cache_test.rb +257 -0
- data/test/cases/relations_test.rb +1182 -0
- data/test/cases/schema_dumper_test.rb +256 -0
- data/test/cases/transaction_callbacks_test.rb +300 -0
- data/test/cases/validations/uniqueness_validation_test.rb +299 -0
- data/test/cases/xml_serialization_test.rb +408 -0
- data/test/config.yml +154 -0
- data/test/connections/native_ibm_db/connection.rb +44 -0
- data/test/ibm_db_test.rb +25 -0
- data/test/models/warehouse_thing.rb +5 -0
- data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
- data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
- data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
- data/test/schema/schema.rb +751 -0
- data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
- metadata +109 -0
@@ -0,0 +1,137 @@
|
|
1
|
+
=begin
|
2
|
+
ActiveRecord::Schema.define do
|
3
|
+
|
4
|
+
execute "DROP TABLE COMMENTS" rescue nil
|
5
|
+
execute "DROP TABLE POSTS" rescue nil
|
6
|
+
execute "DROP TABLE ITEMS" rescue nil
|
7
|
+
execute "DROP TABLE TOPICS" rescue nil
|
8
|
+
execute "DROP TABLE fk_test_has_fk" rescue nil
|
9
|
+
execute "DROP TABLE fk_test_has_pk" rescue nil
|
10
|
+
execute "DROP TABLE CIRCLES" rescue nil
|
11
|
+
execute "DROP TABLE SQUARES" rescue nil
|
12
|
+
execute "DROP TABLE TRIANGLES" rescue nil
|
13
|
+
execute "DROP TABLE NON_POLY_ONES" rescue nil
|
14
|
+
execute "DROP TABLE NON_POLY_TWOS" rescue nil
|
15
|
+
execute "DROP TABLE PAINT_COLORS" rescue nil
|
16
|
+
execute "DROP TABLE PAINT_TEXTURES" rescue nil
|
17
|
+
|
18
|
+
execute <<_SQL
|
19
|
+
CREATE TABLE comments (
|
20
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
21
|
+
post_id INT NOT NULL,
|
22
|
+
type VARCHAR(255) DEFAULT NULL,
|
23
|
+
body VARCHAR(3000)NOT NULL,
|
24
|
+
PRIMARY KEY (id)
|
25
|
+
);
|
26
|
+
_SQL
|
27
|
+
|
28
|
+
execute <<_SQL
|
29
|
+
CREATE TABLE posts (
|
30
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
31
|
+
author_id INT DEFAULT NULL,
|
32
|
+
title VARCHAR(255) NOT NULL,
|
33
|
+
type VARCHAR(255) DEFAULT NULL,
|
34
|
+
body VARCHAR(3000) NOT NULL,
|
35
|
+
comments_count integer DEFAULT 0,
|
36
|
+
taggings_count integer DEFAULT 0,
|
37
|
+
PRIMARY KEY (id)
|
38
|
+
);
|
39
|
+
_SQL
|
40
|
+
|
41
|
+
execute <<_SQL
|
42
|
+
CREATE TABLE fk_test_has_pk (
|
43
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
44
|
+
PRIMARY KEY (id)
|
45
|
+
);
|
46
|
+
_SQL
|
47
|
+
|
48
|
+
execute <<_SQL
|
49
|
+
CREATE TABLE fk_test_has_fk (
|
50
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
51
|
+
fk_id integer NOT NULL,
|
52
|
+
PRIMARY KEY (id),
|
53
|
+
FOREIGN KEY (fk_id) REFERENCES fk_test_has_pk(id)
|
54
|
+
);
|
55
|
+
_SQL
|
56
|
+
|
57
|
+
execute <<_SQL
|
58
|
+
CREATE TABLE items (
|
59
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
60
|
+
name VARCHAR(255) DEFAULT NULL,
|
61
|
+
PRIMARY KEY (id)
|
62
|
+
);
|
63
|
+
_SQL
|
64
|
+
|
65
|
+
execute <<_SQL
|
66
|
+
CREATE TABLE circles (
|
67
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
68
|
+
PRIMARY KEY (id)
|
69
|
+
);
|
70
|
+
_SQL
|
71
|
+
|
72
|
+
execute <<_SQL
|
73
|
+
CREATE TABLE squares(
|
74
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
75
|
+
PRIMARY KEY (id)
|
76
|
+
);
|
77
|
+
_SQL
|
78
|
+
|
79
|
+
execute <<_SQL
|
80
|
+
CREATE TABLE triangles(
|
81
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
82
|
+
PRIMARY KEY (id)
|
83
|
+
);
|
84
|
+
_SQL
|
85
|
+
|
86
|
+
execute <<_SQL
|
87
|
+
CREATE TABLE non_poly_ones(
|
88
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
89
|
+
PRIMARY KEY (id)
|
90
|
+
);
|
91
|
+
_SQL
|
92
|
+
|
93
|
+
execute <<_SQL
|
94
|
+
CREATE TABLE non_poly_twos(
|
95
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
96
|
+
PRIMARY KEY (id)
|
97
|
+
);
|
98
|
+
_SQL
|
99
|
+
|
100
|
+
execute <<_SQL
|
101
|
+
CREATE TABLE paint_colors(
|
102
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
103
|
+
non_poly_one_id INT,
|
104
|
+
PRIMARY KEY (id)
|
105
|
+
);
|
106
|
+
_SQL
|
107
|
+
|
108
|
+
execute <<_SQL
|
109
|
+
CREATE TABLE paint_textures(
|
110
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
111
|
+
non_poly_two_id INT,
|
112
|
+
PRIMARY KEY (id)
|
113
|
+
);
|
114
|
+
_SQL
|
115
|
+
|
116
|
+
execute <<_SQL
|
117
|
+
CREATE TABLE topics (
|
118
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
119
|
+
title VARCHAR(255) DEFAULT NULL,
|
120
|
+
author_name VARCHAR(255) DEFAULT NULL,
|
121
|
+
author_email_address VARCHAR(255) DEFAULT NULL,
|
122
|
+
written_on TIMESTAMP DEFAULT NULL,
|
123
|
+
bonus_time TIME DEFAULT NULL,
|
124
|
+
last_read DATE DEFAULT NULL,
|
125
|
+
content VARCHAR(3000),
|
126
|
+
approved SMALLINT DEFAULT 1,
|
127
|
+
replies_count INT DEFAULT 0,
|
128
|
+
parent_id INT DEFAULT NULL,
|
129
|
+
parent_title VARCHAR(255) DEFAULT NULL,
|
130
|
+
type VARCHAR(255) DEFAULT NULL,
|
131
|
+
group VARCHAR(255) DEFAULT NULL,
|
132
|
+
PRIMARY KEY (id)
|
133
|
+
);
|
134
|
+
_SQL
|
135
|
+
|
136
|
+
end
|
137
|
+
=end
|
@@ -0,0 +1,751 @@
|
|
1
|
+
ActiveRecord::Schema.define do
|
2
|
+
def except(adapter_names_to_exclude)
|
3
|
+
unless [adapter_names_to_exclude].flatten.include?(adapter_name)
|
4
|
+
yield
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
#put adapter specific setup here
|
9
|
+
case adapter_name
|
10
|
+
# For Firebird, set the sequence values 10000 when create_table is called;
|
11
|
+
# this prevents primary key collisions between "normally" created records
|
12
|
+
# and fixture-based (YAML) records.
|
13
|
+
when "Firebird"
|
14
|
+
def create_table(*args, &block)
|
15
|
+
ActiveRecord::Base.connection.create_table(*args, &block)
|
16
|
+
ActiveRecord::Base.connection.execute "SET GENERATOR #{args.first}_seq TO 10000"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
# ------------------------------------------------------------------- #
|
22
|
+
# #
|
23
|
+
# Please keep these create table statements in alphabetical order #
|
24
|
+
# unless the ordering matters. In which case, define them below. #
|
25
|
+
# #
|
26
|
+
# ------------------------------------------------------------------- #
|
27
|
+
|
28
|
+
create_table :accounts, :force => true do |t|
|
29
|
+
t.integer :firm_id
|
30
|
+
t.string :firm_name
|
31
|
+
t.integer :credit_limit
|
32
|
+
end
|
33
|
+
|
34
|
+
create_table :admin_accounts, :force => true do |t|
|
35
|
+
t.string :name
|
36
|
+
end
|
37
|
+
|
38
|
+
create_table :admin_users, :force => true do |t|
|
39
|
+
t.string :name
|
40
|
+
t.text :settings
|
41
|
+
t.references :account
|
42
|
+
end
|
43
|
+
|
44
|
+
create_table :aircraft, :force => true do |t|
|
45
|
+
t.string :name
|
46
|
+
end
|
47
|
+
|
48
|
+
create_table :audit_logs, :force => true do |t|
|
49
|
+
t.column :message, :string, :null=>false
|
50
|
+
t.column :developer_id, :integer, :null=>false
|
51
|
+
t.integer :unvalidated_developer_id
|
52
|
+
end
|
53
|
+
|
54
|
+
create_table :authors, :force => true do |t|
|
55
|
+
t.string :name, :null => false
|
56
|
+
t.integer :author_address_id
|
57
|
+
t.integer :author_address_extra_id
|
58
|
+
t.string :organization_id
|
59
|
+
t.string :owned_essay_id
|
60
|
+
end
|
61
|
+
|
62
|
+
create_table :author_addresses, :force => true do |t|
|
63
|
+
end
|
64
|
+
|
65
|
+
create_table :author_favorites, :force => true do |t|
|
66
|
+
t.column :author_id, :integer
|
67
|
+
t.column :favorite_author_id, :integer
|
68
|
+
end
|
69
|
+
|
70
|
+
create_table :auto_id_tests, :force => true, :id => false do |t|
|
71
|
+
t.primary_key :auto_id
|
72
|
+
t.integer :value
|
73
|
+
end
|
74
|
+
|
75
|
+
create_table :binaries, :force => true do |t|
|
76
|
+
t.string :name
|
77
|
+
t.binary :data
|
78
|
+
end
|
79
|
+
|
80
|
+
create_table :birds, :force => true do |t|
|
81
|
+
t.string :name
|
82
|
+
t.string :color
|
83
|
+
t.integer :pirate_id
|
84
|
+
end
|
85
|
+
|
86
|
+
create_table :books, :force => true do |t|
|
87
|
+
t.integer :author_id
|
88
|
+
t.column :name, :string
|
89
|
+
end
|
90
|
+
|
91
|
+
create_table :booleans, :force => true do |t|
|
92
|
+
t.boolean :value
|
93
|
+
end
|
94
|
+
|
95
|
+
create_table :bulbs, :force => true do |t|
|
96
|
+
t.integer :car_id
|
97
|
+
t.string :name
|
98
|
+
t.boolean :frickinawesome
|
99
|
+
t.string :color
|
100
|
+
end
|
101
|
+
|
102
|
+
create_table "camelcase", :force => true do |t|
|
103
|
+
t.string :name
|
104
|
+
end
|
105
|
+
|
106
|
+
create_table :cars, :force => true do |t|
|
107
|
+
t.string :name
|
108
|
+
t.integer :engines_count
|
109
|
+
t.integer :wheels_count
|
110
|
+
end
|
111
|
+
|
112
|
+
create_table :categories, :force => true do |t|
|
113
|
+
t.string :name, :null => false
|
114
|
+
t.string :type
|
115
|
+
t.integer :categorizations_count
|
116
|
+
end
|
117
|
+
|
118
|
+
create_table :categories_posts, :force => true, :id => false do |t|
|
119
|
+
t.integer :category_id, :null => false
|
120
|
+
t.integer :post_id, :null => false
|
121
|
+
end
|
122
|
+
|
123
|
+
create_table :categorizations, :force => true do |t|
|
124
|
+
t.column :category_id, :integer
|
125
|
+
t.string :named_category_name
|
126
|
+
t.column :post_id, :integer
|
127
|
+
t.column :author_id, :integer
|
128
|
+
t.column :special, :boolean
|
129
|
+
end
|
130
|
+
|
131
|
+
create_table :citations, :force => true do |t|
|
132
|
+
t.column :book1_id, :integer
|
133
|
+
t.column :book2_id, :integer
|
134
|
+
end
|
135
|
+
|
136
|
+
create_table :clubs, :force => true do |t|
|
137
|
+
t.string :name
|
138
|
+
t.integer :category_id
|
139
|
+
end
|
140
|
+
|
141
|
+
create_table :collections, :force => true do |t|
|
142
|
+
t.string :name
|
143
|
+
end
|
144
|
+
|
145
|
+
create_table :colnametests, :force => true do |t|
|
146
|
+
t.integer :references, :null => false
|
147
|
+
end
|
148
|
+
|
149
|
+
create_table :comments, :force => true do |t|
|
150
|
+
t.integer :post_id, :null => false
|
151
|
+
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
152
|
+
# Oracle SELECT WHERE clause which causes many unit test failures
|
153
|
+
if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
|
154
|
+
t.string :body, :null => false, :limit => 4000
|
155
|
+
else
|
156
|
+
t.text :body, :null => false
|
157
|
+
end
|
158
|
+
t.string :type
|
159
|
+
t.integer :taggings_count, :default => 0
|
160
|
+
t.integer :children_count, :default => 0
|
161
|
+
t.integer :parent_id
|
162
|
+
end
|
163
|
+
|
164
|
+
create_table :companies, :force => true do |t|
|
165
|
+
t.string :type
|
166
|
+
t.string :ruby_type
|
167
|
+
t.integer :firm_id
|
168
|
+
t.string :firm_name
|
169
|
+
t.string :name
|
170
|
+
t.integer :client_of
|
171
|
+
t.integer :rating, :default => 1
|
172
|
+
t.integer :account_id
|
173
|
+
end
|
174
|
+
|
175
|
+
add_index :companies, [:firm_id, :type, :rating, :ruby_type], :name => "company_index"
|
176
|
+
|
177
|
+
create_table :computers, :force => true do |t|
|
178
|
+
t.integer :developer, :null => false
|
179
|
+
t.integer :extendedWarranty, :null => false
|
180
|
+
end
|
181
|
+
|
182
|
+
create_table :contracts, :force => true do |t|
|
183
|
+
t.integer :developer_id
|
184
|
+
t.integer :company_id
|
185
|
+
end
|
186
|
+
|
187
|
+
create_table :customers, :force => true do |t|
|
188
|
+
t.string :name
|
189
|
+
t.integer :balance, :default => 0
|
190
|
+
t.string :address_street
|
191
|
+
t.string :address_city
|
192
|
+
t.string :address_country
|
193
|
+
t.string :gps_location
|
194
|
+
end
|
195
|
+
|
196
|
+
create_table :dashboards, :force => true, :id => false do |t|
|
197
|
+
t.string :dashboard_id
|
198
|
+
t.string :name
|
199
|
+
end
|
200
|
+
|
201
|
+
create_table :developers, :force => true do |t|
|
202
|
+
t.string :name
|
203
|
+
t.integer :salary, :default => 70000
|
204
|
+
t.datetime :created_at
|
205
|
+
t.datetime :updated_at
|
206
|
+
end
|
207
|
+
|
208
|
+
create_table :developers_projects, :force => true, :id => false do |t|
|
209
|
+
t.integer :developer_id, :null => false
|
210
|
+
t.integer :project_id, :null => false
|
211
|
+
t.date :joined_on
|
212
|
+
t.integer :access_level, :default => 1
|
213
|
+
end
|
214
|
+
|
215
|
+
create_table :dog_lovers, :force => true do |t|
|
216
|
+
t.integer :trained_dogs_count, :default => 0
|
217
|
+
t.integer :bred_dogs_count, :default => 0
|
218
|
+
end
|
219
|
+
|
220
|
+
create_table :dogs, :force => true do |t|
|
221
|
+
t.integer :trainer_id
|
222
|
+
t.integer :breeder_id
|
223
|
+
end
|
224
|
+
|
225
|
+
create_table :edges, :force => true, :id => false do |t|
|
226
|
+
t.column :source_id, :integer, :null => false
|
227
|
+
t.column :sink_id, :integer, :null => false
|
228
|
+
end
|
229
|
+
add_index :edges, [:source_id, :sink_id], :unique => true, :name => 'unique_edge_index'
|
230
|
+
|
231
|
+
create_table :engines, :force => true do |t|
|
232
|
+
t.integer :car_id
|
233
|
+
end
|
234
|
+
|
235
|
+
create_table :entrants, :force => true do |t|
|
236
|
+
t.string :name, :null => false
|
237
|
+
t.integer :course_id, :null => false
|
238
|
+
end
|
239
|
+
|
240
|
+
create_table :essays, :force => true do |t|
|
241
|
+
t.string :name
|
242
|
+
t.string :writer_id
|
243
|
+
t.string :writer_type
|
244
|
+
t.string :category_id
|
245
|
+
t.string :author_id
|
246
|
+
end
|
247
|
+
|
248
|
+
create_table :events, :force => true do |t|
|
249
|
+
t.string :title, :limit => 5
|
250
|
+
end
|
251
|
+
|
252
|
+
create_table :eyes, :force => true do |t|
|
253
|
+
end
|
254
|
+
|
255
|
+
create_table :funny_jokes, :force => true do |t|
|
256
|
+
t.string :name
|
257
|
+
end
|
258
|
+
|
259
|
+
create_table :cold_jokes, :force => true do |t|
|
260
|
+
t.string :name
|
261
|
+
end
|
262
|
+
|
263
|
+
create_table :goofy_string_id, :force => true, :id => false do |t|
|
264
|
+
t.string :id, :null => false
|
265
|
+
t.string :info
|
266
|
+
end
|
267
|
+
|
268
|
+
create_table :guids, :force => true do |t|
|
269
|
+
t.column :key, :string
|
270
|
+
end
|
271
|
+
|
272
|
+
create_table :inept_wizards, :force => true do |t|
|
273
|
+
t.column :name, :string, :null => false
|
274
|
+
t.column :city, :string, :null => false
|
275
|
+
t.column :type, :string
|
276
|
+
end
|
277
|
+
|
278
|
+
create_table :integer_limits, :force => true do |t|
|
279
|
+
t.integer :"c_int_without_limit"
|
280
|
+
(1..8).each do |i|
|
281
|
+
t.integer :"c_int_#{i}", :limit => i
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
create_table :invoices, :force => true do |t|
|
286
|
+
t.integer :balance
|
287
|
+
t.datetime :updated_at
|
288
|
+
end
|
289
|
+
|
290
|
+
create_table :iris, :force => true do |t|
|
291
|
+
t.references :eye
|
292
|
+
t.string :color
|
293
|
+
end
|
294
|
+
|
295
|
+
create_table :items, :force => true do |t|
|
296
|
+
t.column :name, :string
|
297
|
+
end
|
298
|
+
|
299
|
+
create_table :jobs, :force => true do |t|
|
300
|
+
t.integer :ideal_reference_id
|
301
|
+
end
|
302
|
+
|
303
|
+
create_table :keyboards, :force => true, :id => false do |t|
|
304
|
+
t.primary_key :key_number
|
305
|
+
t.string :name
|
306
|
+
end
|
307
|
+
|
308
|
+
create_table :legacy_things, :force => true do |t|
|
309
|
+
t.integer :tps_report_number
|
310
|
+
t.integer :version, :null => false, :default => 0
|
311
|
+
end
|
312
|
+
|
313
|
+
create_table :lessons, :force => true do |t|
|
314
|
+
t.string :name
|
315
|
+
end
|
316
|
+
|
317
|
+
create_table :lessons_students, :id => false, :force => true do |t|
|
318
|
+
t.references :lesson
|
319
|
+
t.references :student
|
320
|
+
end
|
321
|
+
|
322
|
+
create_table :lint_models, :force => true
|
323
|
+
|
324
|
+
create_table :line_items, :force => true do |t|
|
325
|
+
t.integer :invoice_id
|
326
|
+
t.integer :amount
|
327
|
+
end
|
328
|
+
|
329
|
+
create_table :lock_without_defaults, :force => true do |t|
|
330
|
+
t.column :lock_version, :integer
|
331
|
+
end
|
332
|
+
|
333
|
+
create_table :lock_without_defaults_cust, :force => true do |t|
|
334
|
+
t.column :custom_lock_version, :integer
|
335
|
+
end
|
336
|
+
|
337
|
+
create_table :mateys, :id => false, :force => true do |t|
|
338
|
+
t.column :pirate_id, :integer
|
339
|
+
t.column :target_id, :integer
|
340
|
+
t.column :weight, :integer
|
341
|
+
end
|
342
|
+
|
343
|
+
create_table :members, :force => true do |t|
|
344
|
+
t.string :name
|
345
|
+
t.integer :member_type_id
|
346
|
+
end
|
347
|
+
|
348
|
+
create_table :member_details, :force => true do |t|
|
349
|
+
t.integer :member_id
|
350
|
+
t.integer :organization_id
|
351
|
+
t.string :extra_data
|
352
|
+
end
|
353
|
+
|
354
|
+
create_table :memberships, :force => true do |t|
|
355
|
+
t.datetime :joined_on
|
356
|
+
t.integer :club_id, :member_id
|
357
|
+
t.boolean :favourite, :default => false
|
358
|
+
t.string :type
|
359
|
+
end
|
360
|
+
|
361
|
+
create_table :member_types, :force => true do |t|
|
362
|
+
t.string :name
|
363
|
+
end
|
364
|
+
|
365
|
+
create_table :minivans, :force => true, :id => false do |t|
|
366
|
+
t.string :minivan_id
|
367
|
+
t.string :name
|
368
|
+
t.string :speedometer_id
|
369
|
+
t.string :color
|
370
|
+
end
|
371
|
+
|
372
|
+
create_table :minimalistics, :force => true do |t|
|
373
|
+
end
|
374
|
+
|
375
|
+
create_table :mixed_case_monkeys, :force => true, :id => false do |t|
|
376
|
+
t.primary_key :monkeyID
|
377
|
+
t.integer :fleaCount
|
378
|
+
end
|
379
|
+
|
380
|
+
create_table :mixins, :force => true do |t|
|
381
|
+
t.integer :parent_id
|
382
|
+
t.integer :pos
|
383
|
+
t.datetime :created_at
|
384
|
+
t.datetime :updated_at
|
385
|
+
t.integer :lft
|
386
|
+
t.integer :rgt
|
387
|
+
t.integer :root_id
|
388
|
+
t.string :type
|
389
|
+
end
|
390
|
+
|
391
|
+
create_table :movies, :force => true, :id => false do |t|
|
392
|
+
t.primary_key :movieid
|
393
|
+
t.string :name
|
394
|
+
end
|
395
|
+
|
396
|
+
create_table :numeric_data, :force => true do |t|
|
397
|
+
t.decimal :bank_balance, :precision => 10, :scale => 2
|
398
|
+
t.decimal :big_bank_balance, :precision => 15, :scale => 2
|
399
|
+
t.decimal :world_population, :precision => 10, :scale => 0
|
400
|
+
t.decimal :my_house_population, :precision => 2, :scale => 0
|
401
|
+
t.decimal :decimal_number_with_default, :precision => 3, :scale => 2, :default => 2.78
|
402
|
+
t.float :temperature
|
403
|
+
# Oracle/SQLServer supports precision up to 38
|
404
|
+
if current_adapter?(:OracleAdapter,:SQLServerAdapter)
|
405
|
+
t.decimal :atoms_in_universe, :precision => 38, :scale => 0
|
406
|
+
elsif current_adapter?(:IBM_DBAdapter)
|
407
|
+
t.decimal :atoms_in_universe, :precision => 31, :scale => 0
|
408
|
+
else
|
409
|
+
t.decimal :atoms_in_universe, :precision => 55, :scale => 0
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
413
|
+
create_table :orders, :force => true do |t|
|
414
|
+
t.string :name
|
415
|
+
t.integer :billing_customer_id
|
416
|
+
t.integer :shipping_customer_id
|
417
|
+
end
|
418
|
+
|
419
|
+
create_table :organizations, :force => true do |t|
|
420
|
+
t.string :name
|
421
|
+
end
|
422
|
+
|
423
|
+
create_table :owners, :primary_key => :owner_id ,:force => true do |t|
|
424
|
+
t.string :name
|
425
|
+
t.column :updated_at, :datetime
|
426
|
+
t.column :happy_at, :datetime
|
427
|
+
t.string :essay_id
|
428
|
+
end
|
429
|
+
|
430
|
+
create_table :paint_colors, :force => true do |t|
|
431
|
+
t.integer :non_poly_one_id
|
432
|
+
end
|
433
|
+
|
434
|
+
create_table :paint_textures, :force => true do |t|
|
435
|
+
t.integer :non_poly_two_id
|
436
|
+
end
|
437
|
+
|
438
|
+
create_table :parrots, :force => true do |t|
|
439
|
+
t.column :name, :string
|
440
|
+
t.column :parrot_sti_class, :string
|
441
|
+
t.column :killer_id, :integer
|
442
|
+
t.column :created_at, :datetime
|
443
|
+
t.column :created_on, :datetime
|
444
|
+
t.column :updated_at, :datetime
|
445
|
+
t.column :updated_on, :datetime
|
446
|
+
end
|
447
|
+
|
448
|
+
create_table :parrots_pirates, :id => false, :force => true do |t|
|
449
|
+
t.column :parrot_id, :integer
|
450
|
+
t.column :pirate_id, :integer
|
451
|
+
end
|
452
|
+
|
453
|
+
create_table :parrots_treasures, :id => false, :force => true do |t|
|
454
|
+
t.column :parrot_id, :integer
|
455
|
+
t.column :treasure_id, :integer
|
456
|
+
end
|
457
|
+
|
458
|
+
create_table :people, :force => true do |t|
|
459
|
+
t.string :first_name, :null => false
|
460
|
+
t.references :primary_contact
|
461
|
+
t.string :gender, :limit => 1
|
462
|
+
t.references :number1_fan
|
463
|
+
t.integer :lock_version, :null => false, :default => 0
|
464
|
+
t.string :comments
|
465
|
+
t.references :best_friend
|
466
|
+
t.references :best_friend_of
|
467
|
+
t.timestamps
|
468
|
+
end
|
469
|
+
|
470
|
+
create_table :pets, :primary_key => :pet_id ,:force => true do |t|
|
471
|
+
t.string :name
|
472
|
+
t.integer :owner_id, :integer
|
473
|
+
t.timestamps
|
474
|
+
end
|
475
|
+
|
476
|
+
create_table :pirates, :force => true do |t|
|
477
|
+
t.column :catchphrase, :string
|
478
|
+
t.column :parrot_id, :integer
|
479
|
+
t.integer :non_validated_parrot_id
|
480
|
+
t.column :created_on, :datetime
|
481
|
+
t.column :updated_on, :datetime
|
482
|
+
end
|
483
|
+
|
484
|
+
create_table :posts, :force => true do |t|
|
485
|
+
t.integer :author_id
|
486
|
+
t.string :title, :null => false
|
487
|
+
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
488
|
+
# Oracle SELECT WHERE clause which causes many unit test failures
|
489
|
+
if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
|
490
|
+
t.string :body, :null => false, :limit => 4000
|
491
|
+
else
|
492
|
+
t.text :body, :null => false
|
493
|
+
end
|
494
|
+
t.string :type
|
495
|
+
t.integer :comments_count, :default => 0
|
496
|
+
t.integer :taggings_count, :default => 0
|
497
|
+
t.integer :taggings_with_delete_all_count, :default => 0
|
498
|
+
t.integer :taggings_with_destroy_count, :default => 0
|
499
|
+
t.integer :tags_count, :default => 0
|
500
|
+
t.integer :tags_with_destroy_count, :default => 0
|
501
|
+
t.integer :tags_with_nullify_count, :default => 0
|
502
|
+
end
|
503
|
+
|
504
|
+
create_table :price_estimates, :force => true do |t|
|
505
|
+
t.string :estimate_of_type
|
506
|
+
t.integer :estimate_of_id
|
507
|
+
t.integer :price
|
508
|
+
end
|
509
|
+
|
510
|
+
create_table :products, :force => true do |t|
|
511
|
+
t.references :collection
|
512
|
+
t.string :name
|
513
|
+
end
|
514
|
+
|
515
|
+
create_table :projects, :force => true do |t|
|
516
|
+
t.string :name
|
517
|
+
t.string :type
|
518
|
+
end
|
519
|
+
|
520
|
+
create_table :ratings, :force => true do |t|
|
521
|
+
t.integer :comment_id
|
522
|
+
t.integer :value
|
523
|
+
end
|
524
|
+
|
525
|
+
create_table :readers, :force => true do |t|
|
526
|
+
t.integer :post_id, :null => false
|
527
|
+
t.integer :person_id, :null => false
|
528
|
+
t.boolean :skimmer, :default => false
|
529
|
+
end
|
530
|
+
|
531
|
+
create_table :references, :force => true do |t|
|
532
|
+
t.integer :person_id
|
533
|
+
t.integer :job_id
|
534
|
+
t.boolean :favourite
|
535
|
+
t.integer :lock_version, :default => 0
|
536
|
+
end
|
537
|
+
|
538
|
+
create_table :shape_expressions, :force => true do |t|
|
539
|
+
t.string :paint_type
|
540
|
+
t.integer :paint_id
|
541
|
+
t.string :shape_type
|
542
|
+
t.integer :shape_id
|
543
|
+
end
|
544
|
+
|
545
|
+
create_table :ships, :force => true do |t|
|
546
|
+
t.string :name
|
547
|
+
t.integer :pirate_id
|
548
|
+
t.integer :update_only_pirate_id
|
549
|
+
t.datetime :created_at
|
550
|
+
t.datetime :created_on
|
551
|
+
t.datetime :updated_at
|
552
|
+
t.datetime :updated_on
|
553
|
+
end
|
554
|
+
|
555
|
+
create_table :ship_parts, :force => true do |t|
|
556
|
+
t.string :name
|
557
|
+
t.integer :ship_id
|
558
|
+
end
|
559
|
+
|
560
|
+
create_table :speedometers, :force => true, :id => false do |t|
|
561
|
+
t.string :speedometer_id
|
562
|
+
t.string :name
|
563
|
+
t.string :dashboard_id
|
564
|
+
end
|
565
|
+
|
566
|
+
create_table :sponsors, :force => true do |t|
|
567
|
+
t.integer :club_id
|
568
|
+
t.integer :sponsorable_id
|
569
|
+
t.string :sponsorable_type
|
570
|
+
end
|
571
|
+
|
572
|
+
create_table :string_key_objects, :id => false, :primary_key => :id, :force => true do |t|
|
573
|
+
t.string :id
|
574
|
+
t.string :name
|
575
|
+
t.integer :lock_version, :null => false, :default => 0
|
576
|
+
end
|
577
|
+
|
578
|
+
create_table :students, :force => true do |t|
|
579
|
+
t.string :name
|
580
|
+
end
|
581
|
+
|
582
|
+
create_table :subscribers, :force => true, :id => false do |t|
|
583
|
+
t.string :nick, :null => false
|
584
|
+
t.string :name
|
585
|
+
end
|
586
|
+
add_index :subscribers, :nick, :unique => true
|
587
|
+
|
588
|
+
create_table :subscriptions, :force => true do |t|
|
589
|
+
t.string :subscriber_id
|
590
|
+
t.integer :book_id
|
591
|
+
end
|
592
|
+
|
593
|
+
create_table :tags, :force => true do |t|
|
594
|
+
t.column :name, :string
|
595
|
+
t.column :taggings_count, :integer, :default => 0
|
596
|
+
end
|
597
|
+
|
598
|
+
create_table :taggings, :force => true do |t|
|
599
|
+
t.column :tag_id, :integer
|
600
|
+
t.column :super_tag_id, :integer
|
601
|
+
t.column :taggable_type, :string
|
602
|
+
t.column :taggable_id, :integer
|
603
|
+
t.string :comment
|
604
|
+
end
|
605
|
+
|
606
|
+
create_table :tasks, :force => true do |t|
|
607
|
+
t.datetime :starting
|
608
|
+
t.datetime :ending
|
609
|
+
end
|
610
|
+
|
611
|
+
create_table :topics, :force => true do |t|
|
612
|
+
t.string :title
|
613
|
+
t.string :author_name
|
614
|
+
t.string :author_email_address
|
615
|
+
t.datetime :written_on
|
616
|
+
t.time :bonus_time
|
617
|
+
t.date :last_read
|
618
|
+
# use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
|
619
|
+
# Oracle SELECT WHERE clause which causes many unit test failures
|
620
|
+
if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
|
621
|
+
t.string :content, :limit => 4000
|
622
|
+
t.string :important, :limit => 4000
|
623
|
+
else
|
624
|
+
t.text :content
|
625
|
+
t.text :important
|
626
|
+
end
|
627
|
+
t.boolean :approved, :default => true
|
628
|
+
t.integer :replies_count, :default => 0
|
629
|
+
t.integer :parent_id
|
630
|
+
t.string :parent_title
|
631
|
+
t.string :type
|
632
|
+
t.string :group
|
633
|
+
t.timestamps
|
634
|
+
end
|
635
|
+
|
636
|
+
create_table :toys, :primary_key => :toy_id ,:force => true do |t|
|
637
|
+
t.string :name
|
638
|
+
t.integer :pet_id, :integer
|
639
|
+
t.timestamps
|
640
|
+
end
|
641
|
+
|
642
|
+
create_table :traffic_lights, :force => true do |t|
|
643
|
+
t.string :location
|
644
|
+
t.string :state
|
645
|
+
t.datetime :created_at
|
646
|
+
t.datetime :updated_at
|
647
|
+
end
|
648
|
+
|
649
|
+
create_table :treasures, :force => true do |t|
|
650
|
+
t.column :name, :string
|
651
|
+
t.column :looter_id, :integer
|
652
|
+
t.column :looter_type, :string
|
653
|
+
end
|
654
|
+
|
655
|
+
create_table :tyres, :force => true do |t|
|
656
|
+
t.integer :car_id
|
657
|
+
end
|
658
|
+
|
659
|
+
create_table :variants, :force => true do |t|
|
660
|
+
t.references :product
|
661
|
+
t.string :name
|
662
|
+
end
|
663
|
+
|
664
|
+
create_table :vertices, :force => true do |t|
|
665
|
+
t.column :label, :string
|
666
|
+
end
|
667
|
+
|
668
|
+
create_table 'warehouse_things', :force => true do |t|
|
669
|
+
t.integer :value
|
670
|
+
end
|
671
|
+
|
672
|
+
[:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
|
673
|
+
create_table(t, :force => true) { }
|
674
|
+
end
|
675
|
+
|
676
|
+
# NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
|
677
|
+
create_table :men, :force => true do |t|
|
678
|
+
t.string :name
|
679
|
+
end
|
680
|
+
|
681
|
+
create_table :faces, :force => true do |t|
|
682
|
+
t.string :description
|
683
|
+
t.integer :man_id
|
684
|
+
t.integer :polymorphic_man_id
|
685
|
+
t.string :polymorphic_man_type
|
686
|
+
t.integer :horrible_polymorphic_man_id
|
687
|
+
t.string :horrible_polymorphic_man_type
|
688
|
+
end
|
689
|
+
|
690
|
+
create_table :interests, :force => true do |t|
|
691
|
+
t.string :topic
|
692
|
+
t.integer :man_id
|
693
|
+
t.integer :polymorphic_man_id
|
694
|
+
t.string :polymorphic_man_type
|
695
|
+
t.integer :zine_id
|
696
|
+
end
|
697
|
+
|
698
|
+
create_table :wheels, :force => true do |t|
|
699
|
+
t.references :wheelable, :polymorphic => true
|
700
|
+
end
|
701
|
+
|
702
|
+
create_table :zines, :force => true do |t|
|
703
|
+
t.string :title
|
704
|
+
end
|
705
|
+
|
706
|
+
create_table :countries, :force => true, :id => false, :primary_key => 'country_id' do |t|
|
707
|
+
t.string :country_id
|
708
|
+
t.string :name
|
709
|
+
end
|
710
|
+
create_table :treaties, :force => true, :id => false, :primary_key => 'treaty_id' do |t|
|
711
|
+
t.string :treaty_id
|
712
|
+
t.string :name
|
713
|
+
end
|
714
|
+
create_table :countries_treaties, :force => true, :id => false do |t|
|
715
|
+
t.string :country_id, :null => false
|
716
|
+
t.string :treaty_id, :null => false
|
717
|
+
end
|
718
|
+
|
719
|
+
create_table :liquid, :force => true do |t|
|
720
|
+
t.string :name
|
721
|
+
end
|
722
|
+
create_table :molecules, :force => true do |t|
|
723
|
+
t.integer :liquid_id
|
724
|
+
t.string :name
|
725
|
+
end
|
726
|
+
create_table :electrons, :force => true do |t|
|
727
|
+
t.integer :molecule_id
|
728
|
+
t.string :name
|
729
|
+
end
|
730
|
+
create_table :weirds, :force => true do |t|
|
731
|
+
t.string 'a$b'
|
732
|
+
end
|
733
|
+
|
734
|
+
except 'SQLite' do
|
735
|
+
# fk_test_has_fk should be before fk_test_has_pk
|
736
|
+
create_table :fk_test_has_fk, :force => true do |t|
|
737
|
+
t.integer :fk_id, :null => false
|
738
|
+
end
|
739
|
+
|
740
|
+
create_table :fk_test_has_pk, :force => true do |t|
|
741
|
+
end
|
742
|
+
|
743
|
+
execute "ALTER TABLE fk_test_has_fk ADD CONSTRAINT fk_name FOREIGN KEY (#{quote_column_name 'fk_id'}) REFERENCES #{quote_table_name 'fk_test_has_pk'} (#{quote_column_name 'id'})"
|
744
|
+
|
745
|
+
execute "ALTER TABLE lessons_students ADD CONSTRAINT student_id_fk FOREIGN KEY (#{quote_column_name 'student_id'}) REFERENCES #{quote_table_name 'students'} (#{quote_column_name 'id'})"
|
746
|
+
end
|
747
|
+
end
|
748
|
+
|
749
|
+
Course.connection.create_table :courses, :force => true do |t|
|
750
|
+
t.column :name, :string, :null => false
|
751
|
+
end
|