/
derby_migration_test.rb
68 lines (53 loc) · 1.66 KB
/
derby_migration_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require 'jdbc_common'
require 'db/derby'
class CreateDummies < ActiveRecord::Migration
def self.up
create_table :dummies, :force => true do |t|
t.string :year, :default => "", :null => false
end
add_index :dummies, :year, :unique => true
end
end
class ChangeColumn < ActiveRecord::Migration
def self.up
create_table :people, :id => false, :force => true do |t|
t.string :id, :limit => 22, :null => false
t.string :name, :null => false
end
change_column(:people, :name, :string, {:limit=>22})
execute("SELECT id FROM people WHERE id = 'some string'")
end
def self.down
end
end
class CreateIndex < ActiveRecord::Migration
def self.up
create_table :people, :id => false, :force => true do |t|
t.string :id, :limit => 22, :null => false
t.string :first_name, :null => false
t.string :last_name, :null => false
t.string :nickname, :null => false
t.string :long_name, :null => false
t.string :very_long_name, :null => false
t.string :extremely_long_name, :null => false
end
add_index(:people, [:first_name, :last_name, :nickname, :long_name, :very_long_name, :extremely_long_name], :unique => true)
remove_index(:people, [:first_name, :last_name, :nickname, :long_name, :very_long_name, :extremely_long_name])
end
def self.down
end
end
class DerbyMigrationTest < Test::Unit::TestCase
include FixtureSetup
def test_create_table_column_quoting_vs_keywords
CreateDummies.up
end
def test_migrate_change_column_for_non_standard_id
ChangeColumn.up
ChangeColumn.down
end
def test_migrate_create_index
CreateIndex.up
CreateIndex.down
end
end