class Neo4j::Migrations::Base

Public Class Methods

new(migration_id, options = {}) click to toggle source
   # File lib/neo4j/migrations/base.rb
 9 def initialize(migration_id, options = {})
10   @migration_id = migration_id
11   @silenced = options[:silenced]
12 end

Public Instance Methods

down() click to toggle source
   # File lib/neo4j/migrations/base.rb
24 def down
25   fail NotImplementedError
26 end
migrate(method) click to toggle source
   # File lib/neo4j/migrations/base.rb
14 def migrate(method)
15   Benchmark.realtime do
16     method == :up ? migrate_up : migrate_down
17   end
18 end
up() click to toggle source
   # File lib/neo4j/migrations/base.rb
20 def up
21   fail NotImplementedError
22 end

Private Instance Methods

handle_migration_error!(e) click to toggle source
   # File lib/neo4j/migrations/base.rb
59 def handle_migration_error!(e)
60   fail e unless e.message =~ /Cannot perform data updates in a transaction that has performed schema updates./
61   fail MigrationError,
62        "#{e.message}. Please add `disable_transactions!` in your migration file."
63 end
log_queries() { || ... } click to toggle source
   # File lib/neo4j/migrations/base.rb
69 def log_queries
70   subscriber = Neo4j::Core::CypherSession::Adaptors::Base.subscribe_to_query(&method(:output))
71   yield
72 ensure
73   ActiveSupport::Notifications.unsubscribe(subscriber) if subscriber
74 end
migrate_down() click to toggle source
   # File lib/neo4j/migrations/base.rb
42 def migrate_down
43   schema = SchemaMigration.find_by!(migration_id: @migration_id)
44   schema.update!(incomplete: true)
45   begin
46     run_migration(:down)
47   rescue StandardError => e
48     schema.update!(incomplete: nil) if transactions?
49     handle_migration_error!(e)
50   else
51     schema.destroy
52   end
53 end
migrate_up() click to toggle source
   # File lib/neo4j/migrations/base.rb
30 def migrate_up
31   schema = SchemaMigration.create!(migration_id: @migration_id, incomplete: true)
32   begin
33     run_migration(:up)
34   rescue StandardError => e
35     schema.destroy if transactions?
36     handle_migration_error!(e)
37   else
38     schema.update!(incomplete: nil)
39   end
40 end
migration_transaction(&block) click to toggle source
   # File lib/neo4j/migrations/base.rb
65 def migration_transaction(&block)
66   ActiveBase.run_transaction(transactions?, &block)
67 end
run_migration(direction) click to toggle source
   # File lib/neo4j/migrations/base.rb
55 def run_migration(direction)
56   migration_transaction { log_queries { public_send(direction) } }
57 end