Sha256: 01d6d9772b942e193118294715fa0f7a4ec55312cf87ad1b0abcb9bc5ee57c9c

Contents?: true

Size: 1.22 KB

Versions: 23

Compression:

Stored size: 1.22 KB

Contents

require 'arjdbc/tasks/jdbc_database_tasks'

module ArJdbc
  module Tasks
    class MSSQLDatabaseTasks < JdbcDatabaseTasks

      def purge
        test = deep_dup(configuration)
        test_database = resolve_database(test)
        test['database'] = 'master'
        establish_connection(test)
        connection.recreate_database(test_database)
      end

      def structure_dump(filename)
        config = config_from_url_if_needed
        `smoscript -s #{config['host']} -d #{config['database']} -u #{config['username']} -p #{config['password']} -f #{filename} -A -U`
      end

      def structure_load(filename)
        config = config_from_url_if_needed
        `sqlcmd -S #{config['host']} -d #{config['database']} -U #{config['username']} -P #{config['password']} -i #{filename}`
      end

      private

      def config_from_url_if_needed
        config = self.config
        if config['url'] && ! config.key?('database')
          config = config_from_url(config['url'])
        end
        config
      end

      def deep_dup(hash)
        dup = hash.dup
        dup.each_pair do |k,v|
          tv = dup[k]
          dup[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? deep_dup(tv) : v
        end
        dup
      end

    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
activerecord-jdbc-alt-adapter-52.6.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.7.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.7.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.5.1-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.6.1-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.6.1-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.4.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.5.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.5.0-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.3.4-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.3.4-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.2.3-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.2.2-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.3.3-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.3.3-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-50.3.2-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.3.2-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.2.1-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-51.3.1-java lib/arjdbc/tasks/mssql_database_tasks.rb
activerecord-jdbc-alt-adapter-52.2.0-java lib/arjdbc/tasks/mssql_database_tasks.rb