- create_engine() can take URLs as string or unicode [ticket:188]
- firebird support partially completed;
thanks to James Ralston and Brad Clements for their efforts.
-- Oracle url translation was broken, fixed
+- Oracle url translation was broken, fixed, will feed host/port/sid
+into cx_oracle makedsn() if 'database' field is present, else uses
+straight TNS name from the 'host' field
- fix to using unicode criterion for query.get()/query.load()
- count() function on selectables now uses table primary key or
first column instead of "1" for criterion, also uses label "rowcount"
pg_db = create_engine('postgres://scott:tiger@localhost:5432/mydatabase')
sqlite_db = create_engine('sqlite:///mydb.txt')
mysql_db = create_engine('mysql://localhost/foo')
+
+ # oracle via TNS name
oracle_db = create_engine('oracle://scott:tiger@dsn')
+ # oracle will feed host/port/SID into cx_oracle.makedsn
+ oracle_db = create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')
+
The `Engine` will create its first connection to the database when a SQL statement is executed. As concurrent statements are executed, the underlying connection pool will grow to a default size of five connections, and will allow a default "overflow" of ten. Since the `Engine` is essentially "home base" for the connection pool, it follows that you should keep a single `Engine` per database established within an application, rather than creating a new one for each connection.
### Database Engine Options {@name=options}