git_friendly_dumper 0.0.1
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.
- data/History.txt +10 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +48 -0
- data/Rakefile +43 -0
- data/features/dump/change_dump_path.feature +26 -0
- data/features/dump/data_dump.feature +27 -0
- data/features/dump/default_dump.feature +39 -0
- data/features/dump/dump_and_raise_error.feature +58 -0
- data/features/dump/dump_deleted_records_and_clobber.feature +98 -0
- data/features/dump/dump_specific_tables.feature +39 -0
- data/features/load/clobber_load.feature +49 -0
- data/features/load/db_dump_path_load.feature +63 -0
- data/features/load/default_load.feature +103 -0
- data/features/load/load_and_raise_error.feature +97 -0
- data/features/load/load_fixtures.feature +159 -0
- data/features/load/load_git_changes.feature +17 -0
- data/features/load/load_specific_tables.feature +119 -0
- data/features/step_definitions/app_steps.rb +25 -0
- data/features/step_definitions/database_steps.rb +172 -0
- data/features/support/announce.rb +3 -0
- data/features/support/env.rb +2 -0
- data/features/support/logger.rb +7 -0
- data/lib/git_friendly_dumper.rb +279 -0
- data/lib/git_friendly_dumper/version.rb +3 -0
- data/lib/tasks/git_friendly_dumper_tasks.rake +51 -0
- data/spec/git_friendly_dumper_spec.rb +319 -0
- data/spec/resources/migrate/20070101000000_create_firsts.rb +11 -0
- data/spec/resources/migrate/20070101010000_create_seconds.rb +11 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/support/connect.rb +6 -0
- data/spec/support/logger.rb +7 -0
- metadata +196 -0
data/History.txt
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008-2012 Ian White - ian.w.white@gmail.com
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
= git friendly dumper
|
2
|
+
|
3
|
+
Use fixtures to create a db independent and git friendly db dump.
|
4
|
+
|
5
|
+
It's git friendly because each record is in its own file (git doesn't do
|
6
|
+
very well with large files that are committed all at once).
|
7
|
+
|
8
|
+
If using the schema option (ie. db:dump & db:load), then each table's schema
|
9
|
+
definition is included as is the schema_migrations table.
|
10
|
+
|
11
|
+
== Example usage:
|
12
|
+
|
13
|
+
# drop-in replacement for mysqldump
|
14
|
+
|
15
|
+
rake db:dump DUMP_PATH=some/path
|
16
|
+
# just like mysqldump -u <user> -p<pass> <app>_development > some/path.sql
|
17
|
+
|
18
|
+
rake db:load DUMP_PATH=some/path
|
19
|
+
# just like script/dbconsole -p < some/path.sql
|
20
|
+
|
21
|
+
# without schema information, just the data
|
22
|
+
|
23
|
+
rake db:data:dump DUMP_PATH=some/path # dump the data without touching the structure
|
24
|
+
rake db:data:load DUMP_PATH=some/path # load the data without touching the structure
|
25
|
+
|
26
|
+
# just load particular table data
|
27
|
+
rake db:data:load DUMP_PATH=some/path TABLES=users,things
|
28
|
+
|
29
|
+
See `lib/tasks/git_friendly_dumper_tasks.rake` and the features for more info
|
30
|
+
|
31
|
+
== Notes
|
32
|
+
|
33
|
+
It's probably a bad idea to check your dump into the same repo as your app.
|
34
|
+
|
35
|
+
I created this so that we could have incremental scheduled backups of the db. With a database of 120M
|
36
|
+
containing many binary columns, this resulted in a massive saving in bandwidth.
|
37
|
+
|
38
|
+
Basically, we have the db backup inside the app, but ignored by the main app, the db/dump
|
39
|
+
has it's own git repo.
|
40
|
+
|
41
|
+
== Run the specs and features
|
42
|
+
|
43
|
+
Grab the last known good set of deps and run the specs and features
|
44
|
+
|
45
|
+
cp Gemfile.lock.development Gemfile.lock
|
46
|
+
bundle
|
47
|
+
rake
|
48
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
begin
|
3
|
+
require 'bundler/setup'
|
4
|
+
rescue LoadError
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'rdoc/task'
|
9
|
+
rescue LoadError
|
10
|
+
require 'rdoc/rdoc'
|
11
|
+
require 'rake/rdoctask'
|
12
|
+
RDoc::Task = Rake::RDocTask
|
13
|
+
end
|
14
|
+
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
17
|
+
rdoc.title = 'GitFriendlyDumper'
|
18
|
+
rdoc.options << '--line-numbers'
|
19
|
+
rdoc.rdoc_files.include('README.rdoc')
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
|
+
end
|
22
|
+
|
23
|
+
Bundler::GemHelper.install_tasks
|
24
|
+
|
25
|
+
require 'rspec/core/rake_task'
|
26
|
+
require "cucumber/rake/task"
|
27
|
+
|
28
|
+
task :default => [:spec, :features]
|
29
|
+
|
30
|
+
desc "Set up tmp stuff for running specs etc"
|
31
|
+
file "tmp/db" do
|
32
|
+
mkdir_p 'tmp/db'
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Run the specs"
|
36
|
+
RSpec::Core::RakeTask.new(:spec => ['tmp/db']) do |t|
|
37
|
+
t.pattern = "./spec/**/*_spec.rb"
|
38
|
+
end
|
39
|
+
|
40
|
+
desc "Run the features"
|
41
|
+
Cucumber::Rake::Task.new(:features) do |task|
|
42
|
+
task.cucumber_opts = ["features"]
|
43
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: Change dump path
|
2
|
+
In order to dump somewhere else than db/dump
|
3
|
+
I want the rake task to use the DUMP_PATH env variable to override the data path used
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given I am in an empty app
|
7
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
8
|
+
And an empty database
|
9
|
+
And the database has a "users" table (with timestamps):
|
10
|
+
| name (string) | surname (string) |
|
11
|
+
| Fred | Bloggs |
|
12
|
+
| Ethel | Smith |
|
13
|
+
| Jane | Heidie |
|
14
|
+
And the database has a "schema_migrations" table:
|
15
|
+
| version (string) |
|
16
|
+
| 01001010123 |
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
Scenario: change dump path
|
21
|
+
When I successfully run `rake db:dump FORCE=1 DUMP_PATH=db/override`
|
22
|
+
Then the output should contain "Dumping data and structure from database to db/override"
|
23
|
+
And the following directories should exist:
|
24
|
+
| db/override/users |
|
25
|
+
And the following files should exist:
|
26
|
+
| db/override/users/schema.rb |
|
@@ -0,0 +1,27 @@
|
|
1
|
+
Feature: Data dump
|
2
|
+
In order to …
|
3
|
+
I want to dump the data fixtures but not the schema or migrations table
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given I am in an empty app
|
7
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
8
|
+
And an empty database
|
9
|
+
And the database has a "users" table (with timestamps):
|
10
|
+
| name (string) | surname (string) |
|
11
|
+
| Fred | Bloggs |
|
12
|
+
| Ethel | Smith |
|
13
|
+
| Jane | Heidie |
|
14
|
+
And the database has a "schema_migrations" table:
|
15
|
+
| version (string) |
|
16
|
+
| 01001010123 |
|
17
|
+
|
18
|
+
|
19
|
+
Scenario: rake db:data:dump dumps all tables' contents but does not dump the schema or migrations table
|
20
|
+
When I successfully run `rake db:data:dump FORCE=1`
|
21
|
+
Then the output should contain "Dumping data from database to db/dump"
|
22
|
+
And the following directories should exist:
|
23
|
+
| db/dump/users |
|
24
|
+
But the following directories should not exist:
|
25
|
+
| db/dump/schema_migrations |
|
26
|
+
And the following files should not exist:
|
27
|
+
| db/dump/users/schema.rb |
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Feature: Default dump
|
2
|
+
In order to produce incremental backups of my database using git
|
3
|
+
I want to backup my database in a form git can play nicely with
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given I am in an empty app
|
7
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
8
|
+
And an empty database
|
9
|
+
And the database has a "users" table (with timestamps):
|
10
|
+
| name (string) | surname (string) |
|
11
|
+
| Fred | Bloggs |
|
12
|
+
| Ethel | Smith |
|
13
|
+
| Jane | Heidie |
|
14
|
+
And the database has a "schema_migrations" table:
|
15
|
+
| version (string) |
|
16
|
+
| 01001010123 |
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
Scenario: rake db:dump dumps all tables' contents and the schema
|
21
|
+
When I successfully run `rake db:dump FORCE=1`
|
22
|
+
Then the output should contain "Dumping data and structure from database to db/dump"
|
23
|
+
And the following directories should exist:
|
24
|
+
| db/dump/users |
|
25
|
+
| db/dump/schema_migrations |
|
26
|
+
And the following files should exist:
|
27
|
+
| db/dump/users/schema.rb |
|
28
|
+
|
29
|
+
And the data in the dumped "users" yaml files should match the database contents
|
30
|
+
|
31
|
+
Given an empty database
|
32
|
+
When I execute the schema "db/dump/users/schema.rb"
|
33
|
+
Then a "users" table should exist with structure:
|
34
|
+
| name | type |
|
35
|
+
| id | INTEGER |
|
36
|
+
| created_at | datetime |
|
37
|
+
| updated_at | datetime |
|
38
|
+
| name | varchar(255) |
|
39
|
+
| surname | varchar(255) |
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Feature: Toggle halting dump when runtime errors occur
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given I am in an empty app
|
5
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
6
|
+
And an empty database
|
7
|
+
And the database has a "users" table (with timestamps):
|
8
|
+
| name (string) | surname (string) |
|
9
|
+
| Fred | Bloggs |
|
10
|
+
| Ethel | Smith |
|
11
|
+
| Jane | Heidie |
|
12
|
+
And the database has a "schema_migrations" table:
|
13
|
+
| version (string) |
|
14
|
+
| 01001010123 |
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
Scenario: by default runtime errors are raised
|
19
|
+
When I run `rake db:dump FORCE=1 TABLES=doesntexist`
|
20
|
+
Then the exit status should be 1
|
21
|
+
And the output should contain "dumping doesntexist failed: SQLite3::SQLException: no such table: doesntexist: SELECT COUNT(*) FROM doesntexist"
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Scenario Outline: RAISE_ERROR= toggles silence or raise runtime errors
|
26
|
+
When I run `rake db:dump FORCE=1 TABLES=doesntexist RAISE_ERROR=<RAISE_ERROR>`
|
27
|
+
Then the exit status should be <EXIT_STATUS>
|
28
|
+
But the output should contain "dumping doesntexist failed: SQLite3::SQLException: no such table: doesntexist: SELECT COUNT(*) FROM doesntexist"
|
29
|
+
|
30
|
+
Scenarios: don't raise
|
31
|
+
| RAISE_ERROR | EXIT_STATUS |
|
32
|
+
| false | 0 |
|
33
|
+
| 0 | 0 |
|
34
|
+
|
35
|
+
Scenarios: raise
|
36
|
+
| RAISE_ERROR | EXIT_STATUS |
|
37
|
+
| true | 1 |
|
38
|
+
| 1 | 1 |
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
Scenario: dirty directory warning on failed dump
|
43
|
+
When I run `rake db:dump FORCE=1 TABLES=doesntexist`
|
44
|
+
Then the exit status should be 1
|
45
|
+
And the following directories should exist:
|
46
|
+
| db/dump/doesntexist |
|
47
|
+
And the output should contain "Partial dump files have been left behind and you should clean up before continuing (e.g. git status, git checkout, git clean)."
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
Scenario: invalid FIXTURES argument raises an error
|
52
|
+
When I run `rake db:dump FORCE=1 FIXTURES=a_fixture.yml`
|
53
|
+
Then the exit status should be 1
|
54
|
+
And the output should contain "GitFriendlyDumper if :fixtures option given, neither :include_schema nor :clobber_fixtures can be given"
|
55
|
+
|
56
|
+
When I run `rake db:data:dump FORCE=1 FIXTURES=a_fixture.yml`
|
57
|
+
Then the exit status should be 1
|
58
|
+
And the output should contain "Cannot dump when :fixtures option is given"
|
@@ -0,0 +1,98 @@
|
|
1
|
+
Feature: What happens to fixtures belonging to deleted records when I perform a new dump
|
2
|
+
When dumping a table, any existing fixtures for that table are first removed
|
3
|
+
Any tables not being dumped, however, are ignored, and the old fixtures will remain in place
|
4
|
+
|
5
|
+
In order to have fixtures for what's in my database and nothing else
|
6
|
+
That is, no leftovers (deleted records, dropped tables, etc) from previous dumps
|
7
|
+
I want to CLOBBER them all before dumping
|
8
|
+
|
9
|
+
Background:
|
10
|
+
Given I am in an empty app
|
11
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
12
|
+
And an empty database
|
13
|
+
And the database has a "users" table (with timestamps):
|
14
|
+
| name (string) | surname (string) |
|
15
|
+
| Fred | Bloggs |
|
16
|
+
| Ethel | Smith |
|
17
|
+
| Jane | Heidie |
|
18
|
+
And the database has a "schema_migrations" table:
|
19
|
+
| version (string) |
|
20
|
+
| 01001010123 |
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
Scenario: fixtures belonging to deleted records are deleted and not recreated
|
25
|
+
When I run `rake db:dump FORCE=1`
|
26
|
+
Then the following files should exist:
|
27
|
+
| db/dump/users/0000/0001.yml |
|
28
|
+
| db/dump/users/0000/0002.yml |
|
29
|
+
| db/dump/users/0000/0003.yml |
|
30
|
+
|
31
|
+
When I destroy record 1 from the "users" table
|
32
|
+
And I run `rake db:dump FORCE=1`
|
33
|
+
Then the following files should exist:
|
34
|
+
| db/dump/users/0000/0002.yml |
|
35
|
+
| db/dump/users/0000/0003.yml |
|
36
|
+
But the following files should not exist:
|
37
|
+
| db/dump/users/0000/0001.yml |
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
Scenario: when dumping specific TABLES= any other tables' fixtures are left as they were (even if stale or deleted)
|
42
|
+
Given the database has a "debts" table (with timestamps):
|
43
|
+
| name (string) | surname (string) |
|
44
|
+
| Fred | Bloggs |
|
45
|
+
| Ethel | Smith |
|
46
|
+
|
47
|
+
When I run `rake db:dump FORCE=1`
|
48
|
+
Then the following files should exist:
|
49
|
+
| db/dump/users/0000/0001.yml |
|
50
|
+
| db/dump/users/0000/0002.yml |
|
51
|
+
| db/dump/users/0000/0003.yml |
|
52
|
+
| db/dump/debts/0000/0001.yml |
|
53
|
+
| db/dump/debts/0000/0002.yml |
|
54
|
+
|
55
|
+
When I destroy record 1 from the "debts" table
|
56
|
+
And I run `rake db:dump FORCE=1 TABLES=users`
|
57
|
+
Then the following files should exist:
|
58
|
+
| db/dump/users/0000/0001.yml |
|
59
|
+
| db/dump/users/0000/0002.yml |
|
60
|
+
| db/dump/users/0000/0003.yml |
|
61
|
+
| db/dump/debts/0000/0001.yml |
|
62
|
+
| db/dump/debts/0000/0002.yml |
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
Scenario Outline: CLOBBER= removes all existing fixtures before dumping new ones, combining with TABLES= means only those tables' fixtures will exist
|
67
|
+
Given the database has a "debts" table (with timestamps):
|
68
|
+
| name (string) | surname (string) |
|
69
|
+
| Fred | Bloggs |
|
70
|
+
| Ethel | Smith |
|
71
|
+
When I run `rake db:dump FORCE=1`
|
72
|
+
Then the following files should exist:
|
73
|
+
| db/dump/users/0000/0001.yml |
|
74
|
+
| db/dump/users/0000/0002.yml |
|
75
|
+
| db/dump/users/0000/0003.yml |
|
76
|
+
| db/dump/debts/0000/0001.yml |
|
77
|
+
| db/dump/debts/0000/0002.yml |
|
78
|
+
|
79
|
+
When I destroy record 1 from the "users" table
|
80
|
+
And I run `rake db:dump FORCE=1 TABLES=users CLOBBER=<CLOBBER>`
|
81
|
+
Then the following files should exist:
|
82
|
+
| db/dump/users/0000/0002.yml |
|
83
|
+
| db/dump/users/0000/0003.yml |
|
84
|
+
But the following files should not exist:
|
85
|
+
| db/dump/users/0000/0001.yml |
|
86
|
+
And the following files <EXISTENCE>:
|
87
|
+
| db/dump/debts/0000/0001.yml |
|
88
|
+
| db/dump/debts/0000/0002.yml |
|
89
|
+
|
90
|
+
Scenarios: deleting existing dump fixtures with CLOBBER=true|1
|
91
|
+
| CLOBBER | EXISTENCE |
|
92
|
+
| true | should not exist |
|
93
|
+
| 1 | should not exist |
|
94
|
+
|
95
|
+
Scenarios: not deleting existing dump fixtures with CLOBBER=false|0
|
96
|
+
| CLOBBER | EXISTENCE |
|
97
|
+
| false | should exist |
|
98
|
+
| 0 | should exist |
|
@@ -0,0 +1,39 @@
|
|
1
|
+
Feature: Dump specific tables
|
2
|
+
In order to only backup certain tables
|
3
|
+
I want TABLES to list the tables the rake task will dump
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given I am in an empty app
|
7
|
+
Given a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
8
|
+
And an empty database
|
9
|
+
And the database has a "users" table (with timestamps):
|
10
|
+
| name (string) | surname (string) |
|
11
|
+
| Fred | Bloggs |
|
12
|
+
| Ethel | Smith |
|
13
|
+
| Jane | Heidie |
|
14
|
+
And the database has a "schema_migrations" table:
|
15
|
+
| version (string) |
|
16
|
+
| 01001010123 |
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
Scenario: dump specific tables
|
21
|
+
Given the database has a "seen" table (with timestamps):
|
22
|
+
| bird (string) | seen (integer) |
|
23
|
+
| Parrot | 1 |
|
24
|
+
| Robin | 3 |
|
25
|
+
| Goldfinch | 6 |
|
26
|
+
Given the database has a "notes" table:
|
27
|
+
| content (text) |
|
28
|
+
| Fred spotted a parrot?? |
|
29
|
+
|
30
|
+
When I successfully run `rake db:dump FORCE=1 TABLES=seen,users`
|
31
|
+
Then the output should contain "Dumping data and structure from database to db/dump"
|
32
|
+
And the following directories should exist:
|
33
|
+
| db/dump/users |
|
34
|
+
| db/dump/seen |
|
35
|
+
And the following files should exist:
|
36
|
+
| db/dump/users/schema.rb |
|
37
|
+
| db/dump/seen/schema.rb |
|
38
|
+
But the following directories should not exist:
|
39
|
+
| db/dump/notes |
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Feature: CLOBBER is ignored when loading
|
2
|
+
CLOBBER=false|0 clobber fixtures on dump (default true)
|
3
|
+
Is ignored by db:load
|
4
|
+
|
5
|
+
Scenario: setting CLOBBER on load does nothing (fixtures are not deleted afterwards)
|
6
|
+
Given I am in an empty app
|
7
|
+
And a Rakefile exists which has an environment task and loads git_friendly_dumper tasks
|
8
|
+
And an empty database
|
9
|
+
And a file named "db/dump/users/schema.rb" with:
|
10
|
+
"""
|
11
|
+
create_table "users", :force => true do |t|
|
12
|
+
t.datetime "created_at"
|
13
|
+
t.datetime "updated_at"
|
14
|
+
t.string "name"
|
15
|
+
t.string "surname"
|
16
|
+
end
|
17
|
+
|
18
|
+
"""
|
19
|
+
And a file named "db/dump/users/0000/0001.yml" with:
|
20
|
+
"""
|
21
|
+
---
|
22
|
+
name: Jane
|
23
|
+
created_at: 2003-07-26 12:38:10
|
24
|
+
updated_at: 2007-07-26 12:48:10
|
25
|
+
id: 1
|
26
|
+
surname: Heidie
|
27
|
+
|
28
|
+
"""
|
29
|
+
And a file named "db/dump/users/0000/0002.yml" with:
|
30
|
+
"""
|
31
|
+
---
|
32
|
+
name: Ethel
|
33
|
+
created_at: 2003-07-26 10:38:10
|
34
|
+
updated_at: 2007-07-26 10:48:10
|
35
|
+
id: 2
|
36
|
+
surname: Smith
|
37
|
+
"""
|
38
|
+
|
39
|
+
When I successfully run `rake db:load FORCE=1 CLOBBER=true`
|
40
|
+
And I refresh the database tables cache
|
41
|
+
And the "users" table should match exactly:
|
42
|
+
| id | name | surname | created_at | updated_at |
|
43
|
+
| 1 | Jane | Heidie | 2003-07-26 12:38:10 | 2007-07-26 12:48:10 |
|
44
|
+
| 2 | Ethel | Smith | 2003-07-26 10:38:10 | 2007-07-26 10:48:10 |
|
45
|
+
|
46
|
+
But the following files should exist:
|
47
|
+
| db/dump/users/schema.rb |
|
48
|
+
| db/dump/users/0000/0001.yml |
|
49
|
+
| db/dump/users/0000/0002.yml |
|