1603
Comment:
|
2417
|
Deletions are marked like this. | Additions are marked like this. |
Line 38: | Line 38: |
* Unicode should be used with TEXT, CHAR, and VARCHAR types. * Chars should be used with BYTEA and BINARY types. |
=== Table of properties vs. database types === || '''Property''' || '''PostgreSQL''' || '''MySQL''' || '''SQLite''' || || '''Bool''' || BOOL || TINYINT(1) || ''anything'' (*) || || '''Int''' || SERIAL, BIGSERIAL, SMALLINT, INT, BIGINT || TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT || ''anything'' (*) || || '''Float''' || FLOAT, REAL, DOUBLE PRECISION || FLOAT, REAL, DOUBLE PRECISION || ''anything'' (*) || ## || '''Decimal''' || DECIMAL, NUMERIC, MONEY || DECIMAL, NUMERIC || ''anything'' (*) || || '''Unicode || TEXT, VARCHAR, CHAR || TEXT, VARCHAR, CHAR || ''anything'' (*) || || '''Chars''' || BYTEA || BLOB, BINARY, VARBINARY || ''anything'' (*) || || '''DateTime''' || TIMESTAMP || DATETIME, TIMESTAMP || ''anything'' (*) || || '''Date''' || DATE || DATE || ''anything'' (*) || || '''Time''' || TIME || TIME || ''anything'' (*) || (*) SQLite won't enforce data types, so they just must be formatted properly. |
Storm Manual
This is the detailed documentation for Storm. For a more hands-on approach, check out the [:Tutorial: Tutorial].
Databases
The create_database() function
The create_database() function has the following prototype:
database = create_database(uri)
The uri parameter may be either a URI string or a URI object. The following URIs are examples of acceptable syntax:
backend:database_name
backend://hostname/database_name
backend://hostname:port/database_name
backend://username:password@hostname/database_name
backend://hostname/database_name?option=value
backend://username@/database_name
MySQL
PostgreSQL
SQLite
The Store interface
The ResultSet interface
Properties
Table of properties vs. database types
Property |
PostgreSQL |
MySQL |
SQLite |
Bool |
BOOL |
TINYINT(1) |
anything (*) |
Int |
SERIAL, BIGSERIAL, SMALLINT, INT, BIGINT |
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT |
anything (*) |
Float |
FLOAT, REAL, DOUBLE PRECISION |
FLOAT, REAL, DOUBLE PRECISION |
anything (*) |
Unicode |
TEXT, VARCHAR, CHAR |
TEXT, VARCHAR, CHAR |
anything (*) |
Chars |
BYTEA |
BLOB, BINARY, VARBINARY |
anything (*) |
TIMESTAMP |
DATETIME, TIMESTAMP |
anything (*) |
|
Date |
DATE |
DATE |
anything (*) |
Time |
TIME |
TIME |
anything (*) |
(*) SQLite won't enforce data types, so they just must be formatted properly.
References
One-to-one
Many-to-one
Many-to-many
The Reference interface
The ReferenceSet interface
Expressions
Creating a backend
Testing
It's easy to test that Storm features are working with new backends. There are base test classes in tests/store/database.py and tests/store/base.py which may be inherited by database-specific test cases. Look at other backends to get a feeling of how it works.
If these tests pass with a new backend, you may be pretty sure that Storm is working fine with the created backend.