Class: ActualDbSchema::Store::FileAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/actual_db_schema/store.rb

Overview

Stores migrated files on the filesystem with metadata in CSV.

Instance Method Summary collapse

Instance Method Details

#delete(filename) ⇒ Object



103
104
105
# File 'lib/actual_db_schema/store.rb', line 103

def delete(filename)
  File.delete(filename) if File.exist?(filename)
end

#materialize_allObject



111
112
113
# File 'lib/actual_db_schema/store.rb', line 111

def materialize_all
  nil
end

#migration_filesObject



99
100
101
# File 'lib/actual_db_schema/store.rb', line 99

def migration_files
  Dir["#{folder}/**/[0-9]*_*.rb"]
end

#readObject



93
94
95
96
97
# File 'lib/actual_db_schema/store.rb', line 93

def read
  return {} unless File.exist?(store_file)

  CSV.read(store_file).map { |line| Item.new(*line) }.index_by(&:version)
end

#stored_migration?(filename) ⇒ Boolean

Returns:

  • (Boolean)


107
108
109
# File 'lib/actual_db_schema/store.rb', line 107

def stored_migration?(filename)
  filename.to_s.start_with?(folder.to_s)
end

#write(filename) ⇒ Object



86
87
88
89
90
91
# File 'lib/actual_db_schema/store.rb', line 86

def write(filename)
  basename = File.basename(filename)
  FileUtils.mkdir_p(folder)
  FileUtils.copy(filename, folder.join(basename))
  (filename)
end