class ActiveRecord::Tasks::SpannerDatabaseTasks
Public Class Methods
new(config)
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 12 def initialize config config = config.symbolize_keys @connection = ActiveRecordSpannerAdapter::Connection.new config end
Public Instance Methods
charset()
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 36 def charset nil end
collation()
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 40 def collation nil end
create()
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 17 def create @connection.create_database rescue Google::Cloud::Error => error if error.instance_of? Google::Cloud::AlreadyExistsError raise ActiveRecord::Tasks::DatabaseAlreadyExists end raise error end
drop()
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 27 def drop @connection.database.drop end
purge()
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 31 def purge drop create end
structure_dump(filename, _extra_flags)
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 44 def structure_dump filename, _extra_flags file = File.open filename, "w" ignore_tables = ActiveRecord::SchemaDumper.ignore_tables if ignore_tables.any? index_regx = /^CREATE(.*)INDEX(.*)ON (#{ignore_tables.join "|"})\(/ table_regx = /^CREATE TABLE (#{ignore_tables.join "|"})/ end @connection.database.ddl(force: true).each do |statement| next if ignore_tables.any? && (table_regx =~ statement || index_regx =~ statement) file.write statement file.write "\n" end ensure file.close end
structure_load(filename, _extra_flags)
click to toggle source
# File lib/active_record/tasks/spanner_database_tasks.rb, line 63 def structure_load filename, _extra_flags statements = File.read(filename).split(/(?=^CREATE)/) @connection.execute_ddl statements end