Sha256: c26268d43a5c5b4845b002efebf1301f9b50130b2e8d14388461cd6a1fc45e9e

Contents?: true

Size: 1.6 KB

Versions: 5

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require "rails/generators/migration"

module Sail
  module Generators
    # UpdateGenerator
    #
    # The UpdateGenerator analyzes the current
    # state of the database and helps users
    # upgrade to the latest Sail version.
    class UpdateGenerator < ::Rails::Generators::Base
      include Rails::Generators::Migration

      source_root File.expand_path("templates", __dir__)
      desc "Update an application to Sail's latest version"

      def self.next_migration_number(_path)
        if @prev_migration_nr
          @prev_migration_nr += 1
        else
          @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
        end

        @prev_migration_nr.to_s
      end

      def copy_migrations
        # Add migration to add group to settings
        # if upgrading from Sail <= 1.x.x

        if Sail::Setting.column_names.exclude?("group")
          migration_template "add_group_to_sail_settings.rb",
                             "db/migrate/add_group_to_sail_settings.rb",
                             migration_version: migration_version
        end

        # Add migration to create profiles
        # if upgrading from Sail <= 2.x.x

        unless ActiveRecord::Base.connection.table_exists?("sail_profiles")
          migration_template "#{__dir__}/../install/templates/create_sail_profiles.rb",
                             "db/migrate/create_sail_profiles.rb",
                             migration_version: migration_version
        end
      end

      def migration_version
        "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sail-3.6.1 lib/generators/sail/update/update_generator.rb
sail-3.6.0 lib/generators/sail/update/update_generator.rb
sail-3.5.1 lib/generators/sail/update/update_generator.rb
sail-3.5.0 lib/generators/sail/update/update_generator.rb
sail-3.4.0 lib/generators/sail/update/update_generator.rb