Module: Sequel
- Defined in:
- lib/sequel_core.rb,
lib/sequel_model.rb,
lib/sequel_core/sql.rb,
lib/sequel_model/base.rb,
lib/sequel_model/hooks.rb,
lib/sequel_core/dataset.rb,
lib/sequel_model/record.rb,
lib/sequel_model/schema.rb,
lib/sequel_core/database.rb,
lib/sequel_model/caching.rb,
lib/sequel_model/plugins.rb,
lib/sequel_core/migration.rb,
lib/sequel_core/deprecated.rb,
lib/sequel_core/exceptions.rb,
lib/sequel_core/schema/sql.rb,
lib/sequel_core/dataset/sql.rb,
lib/sequel_model/exceptions.rb,
lib/sequel_core/adapters/ado.rb,
lib/sequel_core/adapters/db2.rb,
lib/sequel_core/adapters/dbi.rb,
lib/sequel_core/object_graph.rb,
lib/sequel_core/pretty_table.rb,
lib/sequel_model/validations.rb,
lib/sequel_core/adapters/jdbc.rb,
lib/sequel_core/adapters/odbc.rb,
lib/sequel_core/dataset/query.rb,
lib/sequel_core/dataset/schema.rb,
lib/sequel_core/adapters/oracle.rb,
lib/sequel_core/adapters/sqlite.rb,
lib/sequel_core/database/schema.rb,
lib/sequel_core/dataset/callback.rb,
lib/sequel_core/schema/generator.rb,
lib/sequel_core/adapters/informix.rb,
lib/sequel_core/adapters/openbase.rb,
lib/sequel_core/adapters/postgres.rb,
lib/sequel_core/dataset/pagination.rb,
lib/sequel_core/adapters/jdbc/mysql.rb,
lib/sequel_core/dataset/convenience.rb,
lib/sequel_core/adapters/jdbc/oracle.rb,
lib/sequel_core/adapters/jdbc/sqlite.rb,
lib/sequel_core/adapters/shared/mssql.rb,
lib/sequel_core/adapters/shared/mysql.rb,
lib/sequel_core/adapters/shared/oracle.rb,
lib/sequel_core/adapters/shared/sqlite.rb,
lib/sequel_core/adapters/shared/postgres.rb,
lib/sequel_core/adapters/shared/progress.rb,
lib/sequel_core/dataset/stored_procedures.rb,
lib/sequel_core/dataset/prepared_statements.rb,
lib/sequel_core/adapters/mysql.rb
Overview
Top level module for Sequel
There are some class methods that are added via metaprogramming, one for each supported adapter. For example:
DB = Sequel.sqlite # Memory database
DB = Sequel.sqlite('blog.db')
DB = Sequel.postgres('database_name', :user=>'user',
:password=>'password', :host=>'host', :port=>5432,
:max_connections=>10)
If a block is given to these methods, it is passed the opened Database object, which is closed (disconnected) when the block exits. For example:
Sequel.sqlite('blog.db'){|db| puts db.users.count}
Sequel converts the column type tinyint to a boolean by default, you can override the conversion to use tinyint as an integer:
Sequel. = false
Sequel converts two digit years in Dates and DateTimes by default, so 01/02/03 is interpreted at January 2nd, 2003, and 12/13/99 is interpreted as December 13, 1999.. You can override this # to treat those dates as January 2nd, 0003 and December 13, 0099, respectively, by setting:
Sequel.convert_two_digit_years = false
Sequel can use either Time or DateTime for times returned from the database. It defaults to Time. To change it to DateTime, use:
Sequel.datetime_class = DateTime
Defined Under Namespace
Modules: ADO, DB2, DBI, Deprecation, Informix, JDBC, MSSQL, Migrator, MySQL, ODBC, OpenBase, Oracle, Plugins, Postgres, PrettyTable, Progress, SQL, SQLite, Schema Classes: BeforeHookFailed, ConnectionPool, Database, DatabaseDisconnectError, DatabaseError, Dataset, Error, LiteralString, Migration, Model, SingleThreadedPool, ValidationFailed
Constant Summary collapse
- DATABASES =
Array of all databases to which Sequel has connected. If you are developing an application that can connect to an arbitrary number of databases, delete the database objects from this or they will not get garbage collected.
[]
Class Method Summary collapse
-
.connect(*args, &block) ⇒ Object
Creates a new database object based on the supplied connection string and optional arguments.
-
.Model(source) ⇒ Object
Lets you create a Model subclass with its dataset already set.
-
.quote_identifiers=(value) ⇒ Object
Set whether to quote identifiers for all databases by default.
-
.single_threaded=(value) ⇒ Object
Set whether to set the single threaded mode for all databases by default.
-
.upcase_identifiers=(value) ⇒ Object
Set whether to upcase identifiers for all databases by default.
-
.use_parse_tree ⇒ Object
Always returns false, since ParseTree support has been removed.
-
.use_parse_tree=(val) ⇒ Object
Raises an error if attempting to turn ParseTree support on (since it no longer exists).
Class Method Details
.connect(*args, &block) ⇒ Object
Creates a new database object based on the supplied connection string and optional arguments. The specified scheme determines the database class used, and the rest of the string specifies the connection options. For example:
DB = Sequel.connect('sqlite:/') # Memory database
DB = Sequel.connect('sqlite://blog.db') # ./blog.db
DB = Sequel.connect('sqlite:///blog.db') # /blog.db
DB = Sequel.connect('postgres://user:password@host:port/database_name')
DB = Sequel.connect('sqlite:///blog.db', :max_connections=>10)
If a block is given, it is passed the opened Database object, which is closed when the block exits. For example:
Sequel.connect('sqlite://blog.db'){|db| puts db.users.count}
This is also aliased as Sequel.open.
67 68 69 |
# File 'lib/sequel_core.rb', line 67 def self.connect(*args, &block) Database.connect(*args, &block) end |
.Model(source) ⇒ Object
22 23 24 |
# File 'lib/sequel_model.rb', line 22 def self.Model(source) @models[source] ||= Class.new(Model).set_dataset(source) end |
.quote_identifiers=(value) ⇒ Object
Set whether to quote identifiers for all databases by default. By default, Sequel quotes identifiers in all SQL strings, so to turn that off:
Sequel.quote_identifiers = false
76 77 78 |
# File 'lib/sequel_core.rb', line 76 def self.quote_identifiers=(value) Database.quote_identifiers = value end |
.single_threaded=(value) ⇒ Object
Set whether to set the single threaded mode for all databases by default. By default, Sequel uses a threadsafe connection pool, which isn’t as fast as the single threaded connection pool. If your program will only have one thread, and speed is a priority, you may want to set this to true:
Sequel.single_threaded = true
86 87 88 |
# File 'lib/sequel_core.rb', line 86 def self.single_threaded=(value) Database.single_threaded = value end |
.upcase_identifiers=(value) ⇒ Object
Set whether to upcase identifiers for all databases by default. By default, Sequel upcases identifiers unless the database folds unquoted identifiers to lower case (MySQL, PostgreSQL, and SQLite).
Sequel.upcase_identifiers = false
95 96 97 |
# File 'lib/sequel_core.rb', line 95 def self.upcase_identifiers=(value) Database.upcase_identifiers = value end |
.use_parse_tree ⇒ Object
Always returns false, since ParseTree support has been removed.
100 101 102 |
# File 'lib/sequel_core.rb', line 100 def self.use_parse_tree false end |