Upgrade 0.2 to 0.3¶
Database Driver vs Dialect¶
NO, decided to take the plunge into SQLAlchemy 2.0 instead
OLD¶
The ONLY breaking change from 0.2 to 0.3 was the config/database.py
database connection configuration.
Prior to 0.3, the driver
and dialect
were reversed. Meaning the driver
was actually the dialect
, and the dialect
was actually the driver
. An oversight on initial Uvicore 0.1 development.
Along with this we also realized that we need two separate drivers. One for synchronous connectivity and one for asynchronous connectivity. This is due to that fact that Uvicore 0.3.0 still uses SQLAlchemy 1.4 which does not support Aync very well for features like create, drop, seed, reseed of the database.
So instead we have REMOVED the new driver
for
- sync_driver
- async_driver
So please REVERS dialect
and create a new sync/async_driver
config in your config/database.py
like so:
'connections': {
# MySQL Example
'wiki': {
'dialect': env('DB_WIKI_DIALECT', 'mysql'),
'sync_driver': env('DB_WIKI_SYNC_DRIVER', 'pymysql'),
'async_driver': env('DB_WIKI_ASYNC_DRIVER', 'aiomysql'),
'host': env('DB_WIKI_HOST', '127.0.0.1'),
'port': env.int('DB_WIKI_PORT', 3306),
'database': env('DB_WIKI_DB', 'dreml'),
'username': env('DB_WIKI_USER', 'root'),
'password': env('DB_WIKI_PASSWORD', 'techie'),
'prefix': env('DB_WIKI_PREFIX', None),
},
},
Now all create, drop, reseed operations use the synchronous pymysql
. And all actual database queries running through encode/databases
use the asynchronous aiomysql