aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/tasks/sqlite_database_tasks.rb
blob: 4d3cba8a50f9f409948915ccd37a85db4b5bb3e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class ActiveRecord::Tasks::SQLiteDatabaseTasks
  delegate :connection, :establish_connection, :to => ActiveRecord::Base

  def initialize(configuration, root = Rails.root)
    @configuration, @root = configuration, root
  end

  def create
    if File.exist? configuration['database']
      $stderr.puts "#{configuration['database']} already exists"
      return
    end

    establish_connection configuration
    connection
  end

  def drop
    require 'pathname'
    path = Pathname.new configuration['database']
    file = path.absolute? ? path.to_s : File.join(root, path)

    FileUtils.rm(file)
  end

  alias :purge :drop

  private

  def configuration
    @configuration
  end

  def root
    @root
  end
end