Class: DBConnection
Class Method Summary collapse
- .columns(table_name) ⇒ Object
- .execute(query, params = []) ⇒ Object
- .migrate ⇒ Object
- .open ⇒ Object
Class Method Details
.columns(table_name) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/laris/larisrecord/db_connection.rb', line 39 def self.columns(table_name) cols = instance.exec("SELECT\nattname\nFROM\npg_attribute\nWHERE\nattrelid = '\#{table_name}'::regclass AND\nattnum > 0 AND\nNOT attisdropped\n") cols.map { |col| col['attname'].to_sym } end |
.execute(query, params = []) ⇒ Object
33 34 35 36 37 |
# File 'lib/laris/larisrecord/db_connection.rb', line 33 def self.execute(query, params=[]) query = number_placeholders(query) print_query(query, params) res = instance.exec(query, params) end |
.migrate ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/laris/larisrecord/db_connection.rb', line 14 def self.migrate ensure_migrations_table migrations = Dir[File.join(Laris::ROOT, "/db/migrations/*.sql")] migrations.each do |file| filename = file.match(/([\w|-]*)\.sql$/)[1] unless migrated_files.include?(filename) instance.exec(File.read(file)) instance.exec("INSERT INTO\nmigrations (filename)\nVALUES\n('\#{filename}')\n") end end end |
.open ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 |
# File 'lib/laris/larisrecord/db_connection.rb', line 2 def self.open uri = URI.parse(ENV['DATABASE_URL']) @conn = PG::Connection.new( user: uri.user, password: uri.password, host: uri.host, port: uri.port, dbname: uri.path[1..-1], ) end |