Parent

Files

Class/Module Index [+]

Quicksearch

ArJdbc::Tasks::DerbyDatabaseTasks

Public Instance Methods

create() click to toggle source
# File lib/arjdbc/tasks/derby_database_tasks.rb, line 7
def create
  establish_connection(config)
  ActiveRecord::Base.connection
end
drop() click to toggle source
# File lib/arjdbc/tasks/derby_database_tasks.rb, line 12
def drop
  db_dir = expand_path resolve_database(config, true)
  if File.exist?(db_dir)
    FileUtils.rm_r(db_dir)
    FileUtils.rmdir(db_dir) rescue nil
  end
end
structure_dump(filename) click to toggle source
# File lib/arjdbc/tasks/derby_database_tasks.rb, line 22
def structure_dump(filename)
  establish_connection(config)
  dump = File.open(filename, "w:utf-8")

  meta_data = connection.jdbc_connection.meta_data
  tables_rs = meta_data.getTables(nil, nil, nil, ["TABLE"].to_java(:String))

  while tables_rs.next
    table_name = tables_rs.getString('TABLE_NAME') # getString(3)
    dump << "CREATE TABLE #{connection.quote_table_name(table_name)} (\n"

    columns_rs = meta_data.getColumns(nil, nil, table_name, nil)
    first_col = true
    while columns_rs.next
      column_name = columns_rs.getString(4)
      default = columns_rs.getString(13)
      if default =~ /^GENERATED_/
        default = column_auto_increment_def(table_name, column_name)
      elsif default
        default = " DEFAULT #{default}"
      end
      type = columns_rs.getString(6)
      column_size = columns_rs.getString(7)
      nulling = ( columns_rs.getString(18) == 'NO' ? " NOT NULL" : nil )

      create_column = connection.quote_column_name(column_name)
      create_column << " #{type}"
      create_column << ( SIZEABLE.include?(type) ? "(#{column_size})" : "" )
      create_column << nulling.to_s
      create_column << default.to_s

      create_column = first_col ? " #{create_column}" : ",\n #{create_column}"
      dump << create_column

      first_col = false
    end
    dump << "\n);\n\n"
  end

  dump.close
end
structure_load(filename) click to toggle source
# File lib/arjdbc/tasks/derby_database_tasks.rb, line 64
def structure_load(filename)
  establish_connection(config)
  IO.read(filename).split(/;\n*/).each { |ddl| connection.execute(ddl) }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.