Class: ProxES::Tasks

Inherits:
Rake::TaskLib
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/proxes/rake_tasks.rb

Instance Method Summary collapse

Instance Method Details

#install_tasksObject



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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/proxes/rake_tasks.rb', line 9

def install_tasks
  namespace :proxes do
    desc 'Generate the needed tokens'
    task :generate_tokens do
      require 'securerandom'
      File.write('.session_secret', SecureRandom.random_bytes(40))
      File.write('.token_secret', SecureRandom.random_bytes(40))
    end

    desc 'Seed the ProxES database'
    task :seed do
      require 'proxes/seed'
    end

    desc 'Prepare ProxES migrations'
    task :prep do
      Dir.mkdir 'migrations' unless File.exists?('migrations')
      ::ProxES::Container.migrations.each do |path|
        FileUtils.cp_r "#{path}/.", 'migrations'
      end
    end

    desc 'Migrate ProxES database to latest version'
    task :migrate do
      Rake::Task['proxes:migrate:up'].invoke
    end

    namespace :migrate do
      require_relative './db'
      Sequel.extension :migration
      folder = 'migrations'

      desc 'Check if the migration is current'
      task :check do
        Sequel::Migrator.check_current(DB, folder)
      end

      desc 'Migrate ProxES database to latest version'
      task :up do
        Sequel::Migrator.apply(DB, folder)
      end

      desc 'Roll back the ProxES database'
      task :down do
        Sequel::Migrator.apply(DB, folder, 0)
      end

      desc 'Reset the ProxES database'
      task :bounce do
        Sequel::Migrator.apply(DB, folder, 0)
        Sequel::Migrator.apply(DB, folder)
      end
    end
  end
end