b44c36e5ba
- Dell EMC driver had an issue with mocking an object and sending it forward. - Some of the create table statements in the database migrations didn't have the charset specified. That seemed to trick the DB engine while defining foreign keys and adding a name to them, as the default charset was defined in the schema, but not in the tables. This behavior was also noted in different places, like [1]. Fix this issue by adding the charset to all create table statements, so they match the engine default charset. [1] https://github.com/apache/superset/issues/8808 Change-Id: I7cd6fa0cc8e054af112493746e753fef2024000f
2.1 KiB
2.1 KiB
The Database Layer
The manila.db.api
Module
manila.db.api
The Sqlalchemy Driver
The manila.db.sqlalchemy.api
Module
manila.db.sqlalchemy.api
The manila.db.sqlalchemy.models
Module
manila.db.sqlalchemy.models
Tests
Tests are lacking for the db api layer and for the sqlalchemy driver. Failures in the drivers would be detected in other test cases, though.
DB migration revisions
If a DB schema needs to be updated, a new DB migration file needs to
be added in manila/db/migrations/alembic/versions
. To
create such a file it's possible to use
manila-manage db revision
or the corresponding tox
command:
tox -e dbrevision "change_foo_table"
In addition every migration script must be tested. See examples in
manila/tests/db/migrations/alembic/migrations_data_checks.py
.
Note
When writing database migrations that create tables with unique
constraints or foreign keys, please ensure that the
mysql_charset
matches the referenced table.