neo4j 8.0.0.alpha.4 → 8.0.0.alpha.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/neo4j/active_base.rb +9 -3
- data/lib/neo4j/migrations.rb +10 -6
- data/lib/neo4j/railtie.rb +3 -1
- data/lib/neo4j/tasks/migration.rake +13 -9
- data/lib/neo4j/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35366c5049bd09b2d9172d7f174576aacb39b3ab
|
4
|
+
data.tar.gz: 3e19875b85dcc4de4a7f5f1a21d9351db2a66c03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48be8c4082aa6603f6a5a09ecfd6173707f90fe228e1f7e2dd1fedd95de7e00b557a8287b4d5c375e3d1f25b745b7997c7132c919056e913fdff27ac81126596
|
7
|
+
data.tar.gz: d92edef01fa0175833fc0849ae67416681abd01483131100437973860453037fe0991b361d98bc22e1e9d72426cdf658f8f8d839887583df0118782b108dda00
|
data/lib/neo4j/active_base.rb
CHANGED
@@ -34,12 +34,12 @@ module Neo4j
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def new_transaction
|
37
|
-
|
37
|
+
validate_model_schema!
|
38
38
|
Neo4j::Transaction.new(current_session)
|
39
39
|
end
|
40
40
|
|
41
41
|
def new_query(options = {})
|
42
|
-
|
42
|
+
validate_model_schema!
|
43
43
|
Neo4j::Core::Query.new({session: current_session}.merge(options))
|
44
44
|
end
|
45
45
|
|
@@ -52,7 +52,7 @@ module Neo4j
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def current_transaction
|
55
|
-
|
55
|
+
validate_model_schema!
|
56
56
|
Neo4j::Transaction.current_for(current_session)
|
57
57
|
end
|
58
58
|
|
@@ -63,6 +63,12 @@ module Neo4j
|
|
63
63
|
def logger
|
64
64
|
@logger ||= (Neo4j::Config[:logger] || ActiveSupport::Logger.new(STDOUT))
|
65
65
|
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def validate_model_schema!
|
70
|
+
Neo4j::ModelSchema.validate_model_schema! unless Neo4j::Migrations.currently_running_migrations
|
71
|
+
end
|
66
72
|
end
|
67
73
|
end
|
68
74
|
end
|
data/lib/neo4j/migrations.rb
CHANGED
@@ -7,13 +7,17 @@ module Neo4j
|
|
7
7
|
autoload :Runner
|
8
8
|
autoload :SchemaMigration
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
class << self
|
11
|
+
def check_for_pending_migrations!
|
12
|
+
runner = Neo4j::Migrations::Runner.new
|
13
|
+
fail ::Neo4j::PendingMigrationError if runner.pending_migrations?
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :currently_running_migrations
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
def maintain_test_schema!
|
19
|
+
Neo4j::Migrations::Runner.new(silenced: true).all
|
20
|
+
end
|
17
21
|
end
|
18
22
|
end
|
19
23
|
end
|
data/lib/neo4j/railtie.rb
CHANGED
@@ -54,7 +54,9 @@ module Neo4j
|
|
54
54
|
session_types = cfg.sessions.map { |session_opts| session_opts[:type] }
|
55
55
|
|
56
56
|
register_neo4j_cypher_logging(session_types)
|
57
|
-
|
57
|
+
if Rails.env.development? && !Neo4j::Migrations.currently_running_migrations && Neo4j::Config.fail_on_pending_migrations
|
58
|
+
Neo4j::Migrations.check_for_pending_migrations!
|
59
|
+
end
|
58
60
|
end
|
59
61
|
|
60
62
|
TYPE_SUBSCRIBERS = {
|
@@ -10,6 +10,10 @@ unless Rake::Task.task_defined?('environment')
|
|
10
10
|
end
|
11
11
|
|
12
12
|
namespace :neo4j do
|
13
|
+
task :allow_migrations do
|
14
|
+
Neo4j::Migrations.currently_running_migrations = true
|
15
|
+
end
|
16
|
+
|
13
17
|
desc 'Run a script against the database to perform system-wide changes'
|
14
18
|
task :legacy_migrate, [:task_name, :subtask] => :environment do |_, args|
|
15
19
|
path = Rake.original_dir
|
@@ -32,46 +36,46 @@ namespace :neo4j do
|
|
32
36
|
end
|
33
37
|
|
34
38
|
desc 'A shortcut for neo4j::migrate::all'
|
35
|
-
task migrate
|
39
|
+
task :migrate do
|
36
40
|
Rake::Task['neo4j:migrate:all'].invoke
|
37
41
|
end
|
38
42
|
|
39
43
|
namespace :migrate do
|
40
44
|
desc 'Run all pending migrations'
|
41
|
-
task all: :environment do
|
45
|
+
task all: [:allow_migrations, :environment] do
|
42
46
|
runner = Neo4j::Migrations::Runner.new
|
43
47
|
runner.all
|
44
48
|
end
|
45
49
|
|
46
50
|
desc 'Run a migration given its VERSION'
|
47
|
-
task up: :environment do
|
51
|
+
task up: [:allow_migrations, :environment] do
|
48
52
|
version = ENV['VERSION'] || fail(ArgumentError, 'VERSION is required')
|
49
53
|
runner = Neo4j::Migrations::Runner.new
|
50
54
|
runner.up version
|
51
55
|
end
|
52
56
|
|
53
57
|
desc 'Revert a migration given its VERSION'
|
54
|
-
task down: :environment do
|
58
|
+
task down: [:allow_migrations, :environment] do
|
55
59
|
version = ENV['VERSION'] || fail(ArgumentError, 'VERSION is required')
|
56
60
|
runner = Neo4j::Migrations::Runner.new
|
57
61
|
runner.down version
|
58
62
|
end
|
59
63
|
|
60
64
|
desc 'Print a report of migrations status'
|
61
|
-
task status: :environment do
|
65
|
+
task status: [:allow_migrations, :environment] do
|
62
66
|
runner = Neo4j::Migrations::Runner.new
|
63
67
|
runner.status
|
64
68
|
end
|
65
69
|
|
66
70
|
desc 'Resolve an incomplete version state'
|
67
|
-
task resolve: :environment do
|
71
|
+
task resolve: [:allow_migrations, :environment] do
|
68
72
|
version = ENV['VERSION'] || fail(ArgumentError, 'VERSION is required')
|
69
73
|
runner = Neo4j::Migrations::Runner.new
|
70
74
|
runner.resolve version
|
71
75
|
end
|
72
76
|
|
73
77
|
desc 'Resolve an incomplete version state'
|
74
|
-
task reset: :environment do
|
78
|
+
task reset: [:allow_migrations, :environment] do
|
75
79
|
version = ENV['VERSION'] || fail(ArgumentError, 'VERSION is required')
|
76
80
|
runner = Neo4j::Migrations::Runner.new
|
77
81
|
runner.reset version
|
@@ -79,7 +83,7 @@ namespace :neo4j do
|
|
79
83
|
end
|
80
84
|
|
81
85
|
desc 'Rollbacks migrations given a STEP number'
|
82
|
-
task :rollback, :environment do
|
86
|
+
task :rollback, [:allow_migrations, :environment] do
|
83
87
|
steps = (ENV['STEP'] || 1).to_i
|
84
88
|
runner = Neo4j::Migrations::Runner.new
|
85
89
|
runner.rollback(steps)
|
@@ -96,7 +100,7 @@ namespace :neo4j do
|
|
96
100
|
fail 'Label must be specified' if label.blank?
|
97
101
|
fail 'Property name must be specified' if property_name.blank?
|
98
102
|
|
99
|
-
migration_class_name = "ForceCreate#{label.camelize}#{property_name.camelize}#{index_or_constraint.capitalize}"
|
103
|
+
migration_class_name = "ForceCreate#{label.camelize}#{property_name.camelize}#{index_or_constraint.capitalize}".gsub('::', '')
|
100
104
|
|
101
105
|
require 'fileutils'
|
102
106
|
FileUtils.mkdir_p('db/neo4j/migrate')
|
data/lib/neo4j/version.rb
CHANGED