Sha256: 1a05191e2732e666eb2bcb078fdbef3363e066cd657a35d2c5c5b579d5c56d77
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
# frozen_string_literal: true require 'whatup' require 'whatup/server/redirection' require 'whatup/server/logger' module Whatup module Server module DbInit extend Redirection extend WhatupLogger class << self def setup_db! log.debug { 'Setting up database ...' } db = "#{Dir.home}/.whatup.db" if File.exist?(db) log.debug { "Using existing database `#{db}" } else log.debug { "Creating new database `#{db}" } SQLite3::Database.new(db) end ActiveRecord::Base.establish_connection adapter: 'sqlite3', database: db truncate_sql = <<~SQL DROP TABLE IF EXISTS clients_rooms; DROP TABLE IF EXISTS clients; DROP TABLE IF EXISTS messages; DROP TABLE IF EXISTS rooms; SQL log.debug { "Truncating existing data ...\n#{truncate_sql}" } ActiveRecord::Base.connection.execute truncate_sql StringIO.new.tap do |io| redirect(stdout: io) { create_tables! } log.debug { "Creating tables ...\n#{io&.string}" } end end private def create_tables! ActiveRecord::Schema.define do create_table :clients, force: true do |t| t.string :name t.references :room t.timestamps end create_table :messages, force: true do |t| t.string :content t.references :sender t.references :recipient t.timestamps end create_table :rooms, force: true do |t| t.string :name t.timestamps end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
whatup-0.3.5 | lib/whatup/server/db_init.rb |