Skip to content

Commit

Permalink
models: add string length to be compatible with mysql
Browse files Browse the repository at this point in the history
  • Loading branch information
psaiz authored and zzacharo committed Jul 7, 2023
1 parent f82e452 commit 0910350
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 20 deletions.
12 changes: 9 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,26 @@ jobs:
matrix:
python-version: [3.7, 3.8, 3.9]
requirements-level: [pypi]
db-service: [postgresql10, postgresql13]
db-service: [postgresql10, postgresql13, mysql8]
search-service: [opensearch2,elasticsearch7]
node-version: [16.x]
exclude:
- python-version: 3.7
db-service: postgresql13


- python-version: 3.7
db-service: mysql8

include:
- search-service: opensearch2
SEARCH_EXTRAS: "opensearch2"

- search-service: elasticsearch7
SEARCH_EXTRAS: "elasticsearch7"


- db-service: mysql8
DB_EXTRAS: "mysql"

env:
DB: ${{ matrix.db-service }}
SEARCH: ${{ matrix.search-service }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ def upgrade():
"""Upgrade database."""
op.create_table(
"vocabularies_schemes",
sa.Column("id", sa.String(), nullable=False),
sa.Column("parent_id", sa.String(), nullable=False),
sa.Column("name", sa.String(), nullable=True),
sa.Column("uri", sa.String(), nullable=True),
sa.Column("id", sa.String(255), nullable=False),
sa.Column("parent_id", sa.String(255), nullable=False),
sa.Column("name", sa.String(255), nullable=True),
sa.Column("uri", sa.String(255), nullable=True),
sa.PrimaryKeyConstraint(
"id", "parent_id", name=op.f("pk_vocabularies_schemes")
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ def upgrade():
)
op.create_table(
"vocabularies_types",
sa.Column("id", sa.String(), nullable=False),
sa.Column("pid_type", sa.String(), nullable=True),
sa.Column("id", sa.String(255), nullable=False),
sa.Column("pid_type", sa.String(255), nullable=True),
sa.PrimaryKeyConstraint("id", name=op.f("pk_vocabularies_types")),
sa.UniqueConstraint("pid_type", name=op.f("uq_vocabularies_types_pid_type")),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def upgrade():
nullable=True,
),
sa.Column("version_id", sa.Integer(), nullable=False),
sa.Column("pid", sa.String(), nullable=True),
sa.Column("pid", sa.String(255), nullable=True),
sa.PrimaryKeyConstraint("id", name=op.f("pk_funder_metadata")),
sa.UniqueConstraint("pid", name=op.f("uq_funder_metadata_pid")),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def upgrade():
nullable=True,
),
sa.Column("version_id", sa.Integer(), nullable=False),
sa.Column("pid", sa.String(), nullable=True),
sa.Column("pid", sa.String(255), nullable=True),
sa.PrimaryKeyConstraint("id", name=op.f("pk_award_metadata")),
sa.UniqueConstraint("pid", name=op.f("uq_award_metadata_pid")),
)
Expand Down
2 changes: 1 addition & 1 deletion invenio_vocabularies/contrib/awards/awards.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
model_cls_attrs={
# cannot set to nullable=False because it would fail at
# service level when create({}), see records-resources.
"pid": db.Column(db.String, unique=True),
"pid": db.Column(db.String(255), unique=True),
},
record_dumper=SearchDumper(
model_fields={"pid": ("id", str)},
Expand Down
2 changes: 1 addition & 1 deletion invenio_vocabularies/contrib/funders/funders.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
model_cls_attrs={
# cannot set to nullable=False because it would fail at
# service level when create({}), see records-resources.
"pid": db.Column(db.String, unique=True),
"pid": db.Column(db.String(255), unique=True),
},
record_dumper=SearchDumper(
model_fields={"pid": ("id", str)},
Expand Down
12 changes: 6 additions & 6 deletions invenio_vocabularies/records/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ class VocabularyType(db.Model):

__tablename__ = "vocabularies_types"

id = db.Column(db.String, primary_key=True)
pid_type = db.Column(db.String, unique=True)
id = db.Column(db.String(255), primary_key=True)
pid_type = db.Column(db.String(255), unique=True)

@classmethod
def create(cls, **data):
Expand Down Expand Up @@ -67,11 +67,11 @@ class VocabularyScheme(db.Model):

__tablename__ = "vocabularies_schemes"

id = db.Column(db.String, primary_key=True)
id = db.Column(db.String(255), primary_key=True)
# This is e.g. `subjects`, 'affiliations', ...
parent_id = db.Column(db.String, primary_key=True)
name = db.Column(db.String)
uri = db.Column(db.String)
parent_id = db.Column(db.String(255), primary_key=True)
name = db.Column(db.String(255))
uri = db.Column(db.String(255))
# Any extra metadata is added as columns.

@classmethod
Expand Down
2 changes: 1 addition & 1 deletion tests/test_alembic.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def test_alembic(app, database):
db = database
ext = app.extensions["invenio-db"]

if db.engine.name == "sqlite":
if db.engine.name in ["sqlite", "mysql"]:
raise pytest.skip("Upgrades are not supported on SQLite.")

# Check that this package's SQLAlchemy models have been properly registered
Expand Down

0 comments on commit 0910350

Please sign in to comment.