database-exporter 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.
- checksums.yaml +7 -0
- data/.gitignore +39 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +74 -0
- data/LICENSE +22 -0
- data/README.md +682 -0
- data/Rakefile +7 -0
- data/bin/database-exporter +48 -0
- data/database_exporter.gemspec +34 -0
- data/example_data/contentful_model.json +316 -0
- data/example_data/contentful_structure.json +89 -0
- data/example_data/example_settings.yml +25 -0
- data/example_data/mapping.json +119 -0
- data/lib/cli.rb +13 -0
- data/lib/configuration.rb +69 -0
- data/lib/converters/content_types_structure_creator.rb +58 -0
- data/lib/converters/contentful_model_to_json.rb +78 -0
- data/lib/database/export.rb +74 -0
- data/lib/database/modules/json_export.rb +79 -0
- data/lib/database/modules/relations_export.rb +270 -0
- data/lib/database/modules/utils.rb +20 -0
- data/lib/migrator.rb +29 -0
- data/lib/version.rb +3 -0
- data/spec/fixtures/database/data/assets/image/image_1.json +9 -0
- data/spec/fixtures/database/data/assets/image/image_2.json +9 -0
- data/spec/fixtures/database/data/assets/image/image_3.json +9 -0
- data/spec/fixtures/database/data/assets/image/image_4.json +9 -0
- data/spec/fixtures/database/data/collections/comment.json +18 -0
- data/spec/fixtures/database/data/collections/job_skills.json +13 -0
- data/spec/fixtures/database/data/collections/jobs.json +44 -0
- data/spec/fixtures/database/data/collections/profile.json +19 -0
- data/spec/fixtures/database/data/collections/user.json +36 -0
- data/spec/fixtures/database/data/entries/comment/comment_1.json +9 -0
- data/spec/fixtures/database/data/entries/comment/comment_2.json +9 -0
- data/spec/fixtures/database/data/entries/comment/comment_3.json +9 -0
- data/spec/fixtures/database/data/entries/comment/comment_4.json +9 -0
- data/spec/fixtures/database/data/entries/comment/comment_5.json +9 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_1.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_10.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_2.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_3.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_4.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_5.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_6.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_7.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_8.json +7 -0
- data/spec/fixtures/database/data/entries/job_skills/job_skills_9.json +7 -0
- data/spec/fixtures/database/data/entries/jobs/jobs_1.json +56 -0
- data/spec/fixtures/database/data/entries/jobs/jobs_2.json +55 -0
- data/spec/fixtures/database/data/entries/jobs/jobs_4.json +49 -0
- data/spec/fixtures/database/data/entries/profile/profile_1.json +12 -0
- data/spec/fixtures/database/data/entries/profile/profile_2.json +12 -0
- data/spec/fixtures/database/data/entries/user/user_1.json +24 -0
- data/spec/fixtures/database/data/entries/user/user_2.json +20 -0
- data/spec/fixtures/database/data/helpers/job_add_id_comments.json +11 -0
- data/spec/fixtures/database/data/helpers/job_add_id_job_add_skills.json +24 -0
- data/spec/fixtures/database/data/helpers/user_id_job_adds.json +9 -0
- data/spec/fixtures/database/data/helpers/user_id_profiles.json +8 -0
- data/spec/fixtures/database/data/table_names.json +10 -0
- data/spec/fixtures/database/table_names.json +4 -0
- data/spec/fixtures/development.sqlite3 +0 -0
- data/spec/fixtures/json_responses/transformed_row.json +7 -0
- data/spec/fixtures/json_row/row.json +6 -0
- data/spec/fixtures/settings/contentful_model.json +316 -0
- data/spec/fixtures/settings/contentful_structure.json +89 -0
- data/spec/fixtures/settings/contentful_structure_test.json +82 -0
- data/spec/fixtures/settings/mapping.json +119 -0
- data/spec/fixtures/settings/settings.yml +27 -0
- data/spec/lib/configuration_spec.rb +17 -0
- data/spec/lib/database/export_spec.rb +49 -0
- data/spec/lib/database/json_export_spec.rb +49 -0
- data/spec/lib/database/relations_export_spec.rb +201 -0
- data/spec/lib/migrator_spec.rb +112 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/support/db_rows_json.rb +9 -0
- data/spec/support/shared_configuration.rb +27 -0
- metadata +358 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "4WFZh4MwC4Mc0EQWAeOY8A",
|
|
3
|
+
"name": "Profile",
|
|
4
|
+
"description": null,
|
|
5
|
+
"displayField": null,
|
|
6
|
+
"fields": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Nickname",
|
|
9
|
+
"id": "nickname",
|
|
10
|
+
"type": "Text"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "User",
|
|
14
|
+
"id": "user",
|
|
15
|
+
"type": "Entry",
|
|
16
|
+
"link": "Link"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "1TVvxCqoRq0qUYAOQuOqys",
|
|
3
|
+
"name": "User",
|
|
4
|
+
"description": null,
|
|
5
|
+
"displayField": "first_name",
|
|
6
|
+
"fields": [
|
|
7
|
+
{
|
|
8
|
+
"name": "First_name",
|
|
9
|
+
"id": "first_name",
|
|
10
|
+
"type": "Text"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "Last_name",
|
|
14
|
+
"id": "last_name",
|
|
15
|
+
"type": "Text"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Birthday",
|
|
19
|
+
"id": "birthday",
|
|
20
|
+
"type": "Date"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "Job_adds",
|
|
24
|
+
"id": "job_adds",
|
|
25
|
+
"type": "Array",
|
|
26
|
+
"link_type": "Entry",
|
|
27
|
+
"link": "Link"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "Profile",
|
|
31
|
+
"id": "profile",
|
|
32
|
+
"type": "Entry",
|
|
33
|
+
"link": "Link"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "jobs_1",
|
|
3
|
+
"name": "First new Job",
|
|
4
|
+
"specification": "Job description",
|
|
5
|
+
"created_at": "2014-12-16T10:26:03+00:00",
|
|
6
|
+
"updated_at": "2014-12-16T10:26:03+00:00",
|
|
7
|
+
"image_id": 3,
|
|
8
|
+
"user_id": 1,
|
|
9
|
+
"database_id": 1,
|
|
10
|
+
"first_name": "FirstName",
|
|
11
|
+
"subjects_comments": [
|
|
12
|
+
"Title comment 1",
|
|
13
|
+
"Title comment 2",
|
|
14
|
+
"Title comment 3"
|
|
15
|
+
],
|
|
16
|
+
"image": {
|
|
17
|
+
"type": "File",
|
|
18
|
+
"id": "image_3"
|
|
19
|
+
},
|
|
20
|
+
"creator": {
|
|
21
|
+
"type": "Entry",
|
|
22
|
+
"id": "user_1"
|
|
23
|
+
},
|
|
24
|
+
"comments": [
|
|
25
|
+
{
|
|
26
|
+
"type": "comment",
|
|
27
|
+
"id": "comment_1"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "comment",
|
|
31
|
+
"id": "comment_2"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "comment",
|
|
35
|
+
"id": "comment_3"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"skills": [
|
|
39
|
+
{
|
|
40
|
+
"type": "job_skills",
|
|
41
|
+
"id": "job_skills_1"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "job_skills",
|
|
45
|
+
"id": "job_skills_3"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "job_skills",
|
|
49
|
+
"id": "job_skills_8"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "job_skills",
|
|
53
|
+
"id": "job_skills_10"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "jobs_2",
|
|
3
|
+
"name": "Nice job!",
|
|
4
|
+
"specification": "Nice job description",
|
|
5
|
+
"created_at": "2014-12-16T10:53:28+00:00",
|
|
6
|
+
"updated_at": "2014-12-16T10:53:28+00:00",
|
|
7
|
+
"image_id": 4,
|
|
8
|
+
"user_id": 1,
|
|
9
|
+
"database_id": 2,
|
|
10
|
+
"first_name": "FirstName",
|
|
11
|
+
"subjects_comments": [
|
|
12
|
+
"Comment 1",
|
|
13
|
+
"Comment 2"
|
|
14
|
+
],
|
|
15
|
+
"image": {
|
|
16
|
+
"type": "File",
|
|
17
|
+
"id": "image_4"
|
|
18
|
+
},
|
|
19
|
+
"creator": {
|
|
20
|
+
"type": "Entry",
|
|
21
|
+
"id": "user_1"
|
|
22
|
+
},
|
|
23
|
+
"comments": [
|
|
24
|
+
{
|
|
25
|
+
"type": "comment",
|
|
26
|
+
"id": "comment_4"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "comment",
|
|
30
|
+
"id": "comment_5"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"skills": [
|
|
34
|
+
{
|
|
35
|
+
"type": "job_skills",
|
|
36
|
+
"id": "job_skills_2"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "job_skills",
|
|
40
|
+
"id": "job_skills_4"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "job_skills",
|
|
44
|
+
"id": "job_skills_7"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "job_skills",
|
|
48
|
+
"id": "job_skills_8"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "job_skills",
|
|
52
|
+
"id": "job_skills_9"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "jobs_4",
|
|
3
|
+
"name": "Awesome job",
|
|
4
|
+
"specification": "One word - awesome!",
|
|
5
|
+
"created_at": "2014-12-16T12:00:28+00:00",
|
|
6
|
+
"updated_at": "2014-12-16T12:00:28+00:00",
|
|
7
|
+
"image_id": 2,
|
|
8
|
+
"user_id": 2,
|
|
9
|
+
"database_id": 4,
|
|
10
|
+
"first_name": "FirstName User 2",
|
|
11
|
+
"image": {
|
|
12
|
+
"type": "File",
|
|
13
|
+
"id": "image_2"
|
|
14
|
+
},
|
|
15
|
+
"creator": {
|
|
16
|
+
"type": "Entry",
|
|
17
|
+
"id": "user_2"
|
|
18
|
+
},
|
|
19
|
+
"skills": [
|
|
20
|
+
{
|
|
21
|
+
"type": "job_skills",
|
|
22
|
+
"id": "job_skills_2"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "job_skills",
|
|
26
|
+
"id": "job_skills_3"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "job_skills",
|
|
30
|
+
"id": "job_skills_4"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "job_skills",
|
|
34
|
+
"id": "job_skills_7"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "job_skills",
|
|
38
|
+
"id": "job_skills_8"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "job_skills",
|
|
42
|
+
"id": "job_skills_9"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "job_skills",
|
|
46
|
+
"id": "job_skills_10"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "user_1",
|
|
3
|
+
"first_name": "FirstName",
|
|
4
|
+
"last_name": "LastName",
|
|
5
|
+
"birthday": "2009-04-16T09:43:00+00:00",
|
|
6
|
+
"created_at": "2014-12-16T09:43:43+00:00",
|
|
7
|
+
"updated_at": "2014-12-16T09:43:43+00:00",
|
|
8
|
+
"database_id": 1,
|
|
9
|
+
"custom_nick": "Nickname 1",
|
|
10
|
+
"profile": {
|
|
11
|
+
"type": "profile",
|
|
12
|
+
"id": "profile_1"
|
|
13
|
+
},
|
|
14
|
+
"job_adds": [
|
|
15
|
+
{
|
|
16
|
+
"type": "jobs",
|
|
17
|
+
"id": "jobs_1"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "jobs",
|
|
21
|
+
"id": "jobs_2"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "user_2",
|
|
3
|
+
"first_name": "FirstName User 2",
|
|
4
|
+
"last_name": "LastName User 2",
|
|
5
|
+
"birthday": "2014-12-16T09:43:00+00:00",
|
|
6
|
+
"created_at": "2014-12-16T09:45:08+00:00",
|
|
7
|
+
"updated_at": "2014-12-16T09:45:08+00:00",
|
|
8
|
+
"database_id": 2,
|
|
9
|
+
"custom_nick": "Nickname 2",
|
|
10
|
+
"profile": {
|
|
11
|
+
"type": "profile",
|
|
12
|
+
"id": "profile_2"
|
|
13
|
+
},
|
|
14
|
+
"job_adds": [
|
|
15
|
+
{
|
|
16
|
+
"type": "jobs",
|
|
17
|
+
"id": "jobs_4"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|