Active Record SQLite3 Adapter

The SQLite3 adapter works with the sqlite3-ruby drivers (available as gem from rubygems.org/gems/sqlite3).

Options

  • :database - Path to the database file.

Constants

FINAL_CLOSE_PARENS_REGEX = /\);*\z/

UNQUOTED_OPEN_PARENS_REGEX = /\((?![^'"]*['"][^'"]*$)/

GENERATED_ALWAYS_AS_REGEX = /.*"(\w+)".+GENERATED ALWAYS AS \((.+)\) (?:STORED|VIRTUAL)/i

PRIMARY_KEY_AUTOINCREMENT_REGEX = /.*"(\w+)".+PRIMARY KEY AUTOINCREMENT/i

COLLATE_REGEX = /.*"(\w+)".*collate\s+"(\w+)".*/i

EXTENDED_TYPE_MAPS = Concurrent::Map.new

TYPE_MAP = Type::TypeMap.new.tap { |m| initialize_type_map(m) }

DEFERRABLE_REGEX = /DEFERRABLE INITIALLY (\w+)/

FK_REGEX = /.*FOREIGN KEY\s+\("([^"]+)"\)\s+REFERENCES\s+"(\w+)"\s+\("(\w+)"\)/

DEFAULT_PRAGMAS = { "foreign_keys" => true, "journal_mode" => :wal, "synchronous" => :normal, "mmap_size" => 134217728, # 128 megabytes "journal_size_limit" => 67108864, # 64 megabytes "cache_size" => 2000 }

NATIVE_DATABASE_TYPES = { primary_key: "integer PRIMARY KEY AUTOINCREMENT NOT NULL", string: { name: "varchar" }, text: { name: "text" }, integer: { name: "integer" }, float: { name: "float" }, decimal: { name: "decimal" }, datetime: { name: "datetime" }, time: { name: "time" }, date: { name: "date" }, binary: { name: "blob" }, boolean: { name: "boolean" }, json: { name: "json" }, }

ADAPTER_NAME = "SQLite"

Attributes

Show files where this class is defined (1 file)
Register or log in to add new notes.