Skip to content

Commit 2330345

Browse files
authored
Merge pull request #12 from cweidner3/develop
Release to provide maria support
2 parents 3046550 + 43cb3c2 commit 2330345

6 files changed

+58
-14
lines changed

.github/workflows/push-images.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ jobs:
3535
uses: docker/[email protected]
3636
with:
3737
images: ${{ secrets.DOCKER_HUB_NS }}/hikeblog-web
38+
tags: |
39+
type=ref,event=branch
40+
type=ref,event=pr
41+
type=semver,pattern={{version}}
42+
type=semver,pattern={{major}}.{{minor}}
3843
3944
- name: Extract metadata (tags, labels) for Docker
4045
id: metaapi

api/src/db/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# pylint: disable=missing-class-docstring
22
# pylint: disable=too-few-public-methods
33

4-
from sqlalchemy import Boolean, Column, Float, ForeignKey, Integer, LargeBinary, Text
4+
from sqlalchemy import Boolean, Column, Float, ForeignKey, Integer, LargeBinary, String, Text
55
from sqlalchemy.orm import relationship
66

77
from src.db.base import Base
@@ -11,7 +11,7 @@
1111
class Timezone(Base):
1212
__tablename__ = 'timezones'
1313

14-
name = Column(Text, primary_key=True, index=True)
14+
name = Column(String(256), primary_key=True, index=True)
1515

1616

1717
class Hike(Base):
@@ -21,7 +21,7 @@ class Hike(Base):
2121
name = Column(Text, nullable=False)
2222
start = Column(AwareDateTime)
2323
end = Column(AwareDateTime)
24-
zone = Column(Text, ForeignKey(Timezone.name), nullable=False, server_default='UTC')
24+
zone = Column(Text, ForeignKey(Timezone.name), nullable=True, server_default='UTC')
2525
title = Column(Text)
2626
brief = Column(Text)
2727
description = Column(Text)
@@ -128,7 +128,7 @@ class Picture(Base):
128128
name = Column(Text, nullable=False)
129129
fmt = Column(Text, nullable=False)
130130
time = Column(AwareDateTime, nullable=False)
131-
data = Column(LargeBinary, nullable=False)
131+
data = Column(LargeBinary(1 << 24), nullable=False)
132132
description = Column(Text)
133133

134134
@property
@@ -149,7 +149,7 @@ class ApiSession(Base):
149149
__tablename__ = 'session'
150150

151151
id = Column(Integer, primary_key=True)
152-
key = Column(Text, unique=True, nullable=False)
152+
key = Column(String(256), unique=True, nullable=False)
153153
username = Column(Text, nullable=False)
154154
displayname = Column(Text, nullable=False)
155155
admin = Column(Boolean, default=False)

api/src/migrations/20221203_2120-6acb64a658cd_create_sessions_table.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
77
"""
88
from alembic import op
9-
from sqlalchemy import Boolean, Column, Integer, Text
9+
from sqlalchemy import Boolean, Column, Integer, Text, String
1010
import uuid
1111

1212

@@ -21,7 +21,7 @@ def upgrade() -> None:
2121
table = op.create_table(
2222
'session',
2323
Column('id', Integer, primary_key=True),
24-
Column('key', Text, unique=True, nullable=False),
24+
Column('key', String(256), unique=True, nullable=False),
2525
Column('username', Text, nullable=False),
2626
Column('displayname', Text, nullable=False),
2727
Column('admin', Boolean, default=False),

api/src/migrations/20221204_0800-991b63134bdc_add_timezone_column_to_tables_with_.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"""
88
from alembic import op
99
import pytz
10-
from sqlalchemy import Column, Date, DateTime, Text, ForeignKey
10+
from sqlalchemy import Column, Date, DateTime, String, Text, ForeignKey
1111

1212

1313
# revision identifiers, used by Alembic.
@@ -20,14 +20,13 @@
2020
def upgrade() -> None:
2121
tztable = op.create_table(
2222
'timezones',
23-
Column('name', Text, index=True, primary_key=True),
23+
Column('name', String(256), index=True, primary_key=True),
2424
)
2525
assert tztable is not None
2626
op.bulk_insert(tztable, list(map(lambda x: dict(name=x), pytz.common_timezones)))
2727

28-
op.add_column('hikes', Column('zone', Text, ForeignKey('timezones.name'), server_default='UTC'))
28+
op.add_column('hikes', Column('zone', String(256), ForeignKey('timezones.name'), server_default='UTC'))
2929
op.execute("UPDATE hikes SET zone = 'UTC'")
30-
op.alter_column('hikes', 'zone', nullable=False)
3130
op.alter_column('hikes', 'start', type_=DateTime)
3231
op.alter_column('hikes', 'end', type_=DateTime)
3332

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""Set LargeBinary size for MariaDB BLOB
2+
3+
Revision ID: 692e53a878cb
4+
Revises: 991b63134bdc
5+
Create Date: 2022-12-10 14:12:58.313588
6+
7+
"""
8+
from alembic import op
9+
from sqlalchemy import LargeBinary
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = '692e53a878cb'
14+
down_revision = '991b63134bdc'
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade() -> None:
20+
op.alter_column('pictures', 'data', type_=LargeBinary(1 << 24))
21+
22+
23+
def downgrade() -> None:
24+
op.alter_column('pictures', 'data', type_=LargeBinary)

docker-compose.yml

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ services:
2121
build: ./api
2222
environment:
2323
APP_MODE: development
24-
DB_DIALECT: postgres
25-
DB_HOST: db
24+
# DB_DIALECT: postgres
25+
DB_DIALECT: mariadb
26+
# DB_HOST: db
27+
DB_HOST: mariadb
2628
DB_NAME: db
27-
DB_USER: postgres
29+
# DB_USER: postgres
30+
DB_USER: user
2831
DB_PASS: secret
2932
volumes:
3033
- ./api/src:/app/src:ro
@@ -39,11 +42,24 @@ services:
3942
volumes:
4043
- db_data:/var/lib/postgresql/data
4144

45+
mariadb:
46+
image: mariadb:10.3
47+
environment:
48+
MARIADB_USER: user
49+
MARIADB_PASSWORD: secret
50+
MARIADB_ROOT_PASSWORD: secret
51+
MARIADB_DATABASE: db
52+
ports:
53+
- 3306:3306/tcp
54+
volumes:
55+
- maria_data:/var/lib/mysql
56+
4257
adminer:
4358
image: adminer:4.8.1
4459

4560
volumes:
4661
db_data: {}
62+
maria_data: {}
4763

4864
configs:
4965
proxy_conf:

0 commit comments

Comments
 (0)