sql_migrations 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/lib/sql_migrations/find_scripts.rb +3 -1
- data/lib/sql_migrations/migration.rb +1 -1
- data/lib/sql_migrations/version.rb +1 -1
- data/spec/features/fixture_spec.rb +22 -0
- data/spec/features/migration_multistatement_spec.rb +0 -1
- data/spec/features/migration_order_spec.rb +0 -1
- data/spec/features/migration_spec.rb +1 -2
- data/spec/features/seed_spec.rb +21 -0
- data/spec/features/sql_scripts_spec.rb +4 -3
- data/spec/spec_helper.rb +5 -0
- data/sql_migrations.gemspec +2 -1
- metadata +22 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc164b4988352478c077939a9ed77564a15d52eb
|
4
|
+
data.tar.gz: 7c8dd94fd00064b7888154aa374568131813d3e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43bfdee3da5cdd107dd72cd2eef9ef57a65a87abcb76c04b4735915b3ade80dae99e92880294eed5ac6c20a6abddab8c195085b0a44e03763ffed3517b8063e0
|
7
|
+
data.tar.gz: 55bf6583e6875822d9bec006c6027001f111d235621210715a837607e515db9cea4de462828f918231c312f16412cfc021c346a518b2b5c877d56a1549d01604
|
data/README.md
CHANGED
@@ -105,7 +105,7 @@ For example, if you work on old Zend 1 project, and you want to take benefit fro
|
|
105
105
|
If you have multi-statement migrations you should provide `separator` configuration variable in `options` block. `options` key is optional in YAML.
|
106
106
|
|
107
107
|
|
108
|
-
4. Migrations/
|
108
|
+
4. Migrations/seeds/fixtures can be executed using rake tasks. So you will need to create `Rakefile`:
|
109
109
|
|
110
110
|
```ruby
|
111
111
|
require 'bundler'
|
@@ -147,7 +147,7 @@ For example, if you work on old Zend 1 project, and you want to take benefit fro
|
|
147
147
|
|
148
148
|
## Usage
|
149
149
|
|
150
|
-
1. Valid migration/
|
150
|
+
1. Valid migration/seeds/fixture file names match against regexp `/(\d{8})_(\d{6})_(.*)?\.sql/`. So valid filenames would be:
|
151
151
|
|
152
152
|
|
153
153
|
20150303_180100_test_migration.sql
|
@@ -163,7 +163,7 @@ For example, if you work on old Zend 1 project, and you want to take benefit fro
|
|
163
163
|
20150303_180100_test_migration.sql
|
164
164
|
fixtures/
|
165
165
|
20150303_180100_fixture1.sql
|
166
|
-
|
166
|
+
seeds/
|
167
167
|
20150303_180100_whatever_description_of_seed.sql
|
168
168
|
|
169
169
|
If you want to use multiple databases, create also database directories:
|
@@ -175,7 +175,7 @@ For example, if you work on old Zend 1 project, and you want to take benefit fro
|
|
175
175
|
fixtures/
|
176
176
|
default/
|
177
177
|
second_db/
|
178
|
-
|
178
|
+
seeds/
|
179
179
|
default/
|
180
180
|
second_db/
|
181
181
|
|
@@ -14,6 +14,8 @@ module SqlMigrations
|
|
14
14
|
files
|
15
15
|
end
|
16
16
|
|
17
|
+
private
|
18
|
+
|
17
19
|
def match_file(db_dir, type, path)
|
18
20
|
# parent_dir/base_dir/filename_that_matches_regexp.sql
|
19
21
|
_filename, base_dir, parent_dir = path.split(File::SEPARATOR).last(3).reverse
|
@@ -23,7 +25,7 @@ module SqlMigrations
|
|
23
25
|
return nil unless file_parameters
|
24
26
|
|
25
27
|
# Only files that lay in specific directory structure will do
|
26
|
-
file_database = file_match_directories(parent_dir, base_dir, db_dir, type)
|
28
|
+
file_database = file_match_directories(parent_dir, base_dir, db_dir, "#{type}s")
|
27
29
|
return nil unless file_database
|
28
30
|
|
29
31
|
{ date: file_parameters[1], time: file_parameters[2],
|
@@ -0,0 +1,22 @@
|
|
1
|
+
describe 'fixture' do
|
2
|
+
before do
|
3
|
+
Dir.mkdir('/migrations')
|
4
|
+
File.open('/migrations/20150305_154010_test_migration.sql', 'w') do |f|
|
5
|
+
f.puts 'CREATE TABLE test_table_fixture(col_int INTEGER, col_str STRING)'
|
6
|
+
end
|
7
|
+
Dir.mkdir('/fixtures')
|
8
|
+
File.open('/fixtures/20150305_154012_test_fixture.sql', 'w') do |f|
|
9
|
+
f.puts 'INSERT INTO test_table_fixture VALUES(12, "test_string_fixture")'
|
10
|
+
end
|
11
|
+
allow(SqlMigrations::Config).to receive(:databases) { { default: { development: {} } } }
|
12
|
+
database = SqlMigrations::Database.new(:default, adapter: :sqlite)
|
13
|
+
database.execute_migrations
|
14
|
+
database.seed_with_fixtures
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should be properly executed' do
|
18
|
+
expect(@sqlite_db.table_exists?(:test_table_fixture)).to be true
|
19
|
+
expect(@sqlite_db[:test_table_fixture].first)
|
20
|
+
.to eq(col_int: 12, col_str: 'test_string_fixture')
|
21
|
+
end
|
22
|
+
end
|
@@ -15,7 +15,6 @@ describe 'multistatement migration' do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should be properly executed' do
|
18
|
-
$stdout = StringIO.new
|
19
18
|
database = SqlMigrations::Database.new(:default, adapter: :sqlite)
|
20
19
|
@migration.execute(database)
|
21
20
|
expect(@sqlite_db.table_exists?(:multi_test_table1)).to be true
|
@@ -1,7 +1,6 @@
|
|
1
1
|
describe 'migrations valid order support engine' do
|
2
2
|
before do
|
3
3
|
allow(SqlMigrations::Config).to receive(:databases) { { default: { development: {} } } }
|
4
|
-
$stdout = StringIO.new
|
5
4
|
Dir.mkdir('/migrations')
|
6
5
|
File.open('/migrations/20150305_154010_test_migration.sql', 'w') do |f|
|
7
6
|
f.puts 'CREATE TABLE test_table(col_int INTEGER, col_str STRING)'
|
@@ -25,9 +25,8 @@ describe 'migration' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'should be properly executed' do
|
28
|
-
$stdout = StringIO.new
|
29
28
|
database = SqlMigrations::Database.new(:default, adapter: :sqlite)
|
30
|
-
|
29
|
+
database.execute_migrations
|
31
30
|
expect(@sqlite_db.table_exists?(:test_table)).to be true
|
32
31
|
expect(@sqlite_db[:test_table].columns).to include(:col_int)
|
33
32
|
expect(@sqlite_db[:test_table].columns).to include(:col_str)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
describe 'seed' do
|
2
|
+
before do
|
3
|
+
Dir.mkdir('/migrations')
|
4
|
+
File.open('/migrations/20150305_154010_test_migration.sql', 'w') do |f|
|
5
|
+
f.puts 'CREATE TABLE test_table(col_int INTEGER, col_str STRING)'
|
6
|
+
end
|
7
|
+
Dir.mkdir('/seeds')
|
8
|
+
File.open('/seeds/20150305_154011_test_seed.sql', 'w') do |f|
|
9
|
+
f.puts 'INSERT INTO test_table VALUES(10, "test_string")'
|
10
|
+
end
|
11
|
+
allow(SqlMigrations::Config).to receive(:databases) { { default: { development: {} } } }
|
12
|
+
database = SqlMigrations::Database.new(:default, adapter: :sqlite)
|
13
|
+
database.execute_migrations
|
14
|
+
database.seed_database
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should be properly execute' do
|
18
|
+
expect(@sqlite_db.table_exists?(:test_table)).to be true
|
19
|
+
expect(@sqlite_db[:test_table].first).to eq(col_int: 10, col_str: 'test_string')
|
20
|
+
end
|
21
|
+
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
describe 'sql scripts' do
|
3
3
|
before do
|
4
4
|
Dir.mkdir('/migrations')
|
5
|
-
Dir.mkdir('/seed')
|
6
5
|
Dir.mkdir('/fixtures')
|
6
|
+
Dir.mkdir('/seeds')
|
7
7
|
|
8
8
|
File.open('/migrations/20150305_154010_first_test_migration.sql', 'w') do |f|
|
9
9
|
f.puts 'CREATE TABLE first_test_table(col_int1 INTEGER, col_str1 STRING)'
|
@@ -11,11 +11,11 @@ describe 'sql scripts' do
|
|
11
11
|
File.open('/migrations/20150305_154011_second_test_migration.sql', 'w') do |f|
|
12
12
|
f.puts 'CREATE TABLE second_test_table(col_int2 INTEGER, col_str2 STRING)'
|
13
13
|
end
|
14
|
-
File.open('/
|
14
|
+
File.open('/seeds/20150305_154010_test_seed.sql', 'w') do |f|
|
15
15
|
f.puts 'INSERT INTO first_test_table(col_int1, col_str1) VALUES(123, "test_string1")'
|
16
16
|
f.puts 'INSERT INTO second_test_table(col_int2, col_str2) VALUES(456, "test_string2")'
|
17
17
|
end
|
18
|
-
File.open('/fixtures/
|
18
|
+
File.open('/fixtures/20150518_154012_test_fixture.sql', 'w') do |f|
|
19
19
|
f.puts 'INSERT INTO first_test2_table(col_int1, col_str1) VALUES(2123, "2test_string1")'
|
20
20
|
f.puts 'INSERT INTO second_test2_table(col_int2, col_str2) VALUES(2456, "2test_string2")'
|
21
21
|
end
|
@@ -39,6 +39,7 @@ describe 'sql scripts' do
|
|
39
39
|
"Migration second_test_migration for `default` database, datetime: 20150305154011\n" \
|
40
40
|
"Migration default_db_test2_migration for `default` database, datetime: 20150511144100\n" \
|
41
41
|
"Seed data test_seed for `default` database, datetime: 20150305154010\n" \
|
42
|
+
"Fixture test_fixture for `default` database, datetime: 20150518154012\n" \
|
42
43
|
"Migration second_db_test_migration for `test2_db` database, datetime: 20150511144000\n"
|
43
44
|
).to_stdout
|
44
45
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'bundler/setup'
|
2
2
|
require 'memfs'
|
3
|
+
require 'simplecov'
|
4
|
+
|
5
|
+
SimpleCov.start
|
3
6
|
Bundler.require
|
4
7
|
|
5
8
|
RSpec.configure do |config|
|
@@ -13,9 +16,11 @@ RSpec.configure do |config|
|
|
13
16
|
MemFs.activate!
|
14
17
|
# Reset configuration for every test suite
|
15
18
|
SqlMigrations::Config.instance_eval('@databases = nil; @options = nil')
|
19
|
+
@stdout, $stdout = $stdout, StringIO.new # Catch STDOUT do variable
|
16
20
|
end
|
17
21
|
|
18
22
|
config.after do
|
23
|
+
$stdout, @stdout = @stdout, nil # Reassign STDOUT
|
19
24
|
MemFs.deactivate!
|
20
25
|
end
|
21
26
|
end
|
data/sql_migrations.gemspec
CHANGED
@@ -22,8 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency 'sqlite3', '~> 1.3.10'
|
23
23
|
spec.add_development_dependency 'memfs', '~> 0.4.3'
|
24
24
|
spec.add_development_dependency 'rubocop', '~> 0.31.0'
|
25
|
+
spec.add_development_dependency 'simplecov', '~> 0.10.0'
|
25
26
|
spec.add_dependency 'bundler', '~> 1.7'
|
26
27
|
spec.add_dependency 'rake', '~> 10.0'
|
27
|
-
spec.add_dependency 'sequel', '~> 4.
|
28
|
+
spec.add_dependency 'sequel', '~> 4.22.0'
|
28
29
|
# rubocop:enable Style/SingleSpaceBeforeFirstArg
|
29
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sql_migrations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grzegorz Bizon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.31.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.10.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.10.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: bundler
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +114,14 @@ dependencies:
|
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 4.
|
117
|
+
version: 4.22.0
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 4.
|
124
|
+
version: 4.22.0
|
111
125
|
description:
|
112
126
|
email:
|
113
127
|
- grzegorz.bizon@ntsn.pl
|
@@ -137,10 +151,12 @@ files:
|
|
137
151
|
- lib/sql_migrations/tasks/seed_test.rake
|
138
152
|
- lib/sql_migrations/version.rb
|
139
153
|
- spec/features/config_spec.rb
|
154
|
+
- spec/features/fixture_spec.rb
|
140
155
|
- spec/features/migration_multistatement_spec.rb
|
141
156
|
- spec/features/migration_order_spec.rb
|
142
157
|
- spec/features/migration_spec.rb
|
143
158
|
- spec/features/schema_table_spec.rb
|
159
|
+
- spec/features/seed_spec.rb
|
144
160
|
- spec/features/sql_scripts_spec.rb
|
145
161
|
- spec/spec_helper.rb
|
146
162
|
- sql_migrations.gemspec
|
@@ -170,10 +186,12 @@ specification_version: 4
|
|
170
186
|
summary: Simple standalone migrations you can use with plain SQL
|
171
187
|
test_files:
|
172
188
|
- spec/features/config_spec.rb
|
189
|
+
- spec/features/fixture_spec.rb
|
173
190
|
- spec/features/migration_multistatement_spec.rb
|
174
191
|
- spec/features/migration_order_spec.rb
|
175
192
|
- spec/features/migration_spec.rb
|
176
193
|
- spec/features/schema_table_spec.rb
|
194
|
+
- spec/features/seed_spec.rb
|
177
195
|
- spec/features/sql_scripts_spec.rb
|
178
196
|
- spec/spec_helper.rb
|
179
197
|
has_rdoc:
|