Skip to content
Snippets Groups Projects
Commit dd7457a9 authored by Julian's avatar Julian
Browse files

Add photo creation date

parent 09a28a8e
No related branches found
No related tags found
No related merge requests found
"""Add photo creation date
Revision ID: aabfcc081e98
Revises: 549a81db4351
Create Date: 2023-03-11 23:10:39.519330
"""
from alembic import op
import sqlalchemy as sa
from flask import current_app
import os
import datetime
# revision identifiers, used by Alembic.
revision = 'aabfcc081e98'
down_revision = '549a81db4351'
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('photo', schema=None) as batch_op:
batch_op.add_column(sa.Column('created', sa.DateTime(), nullable=True))
table = sa.table(
'photo',
sa.column('id', sa.Integer),
sa.column('path', sa.String(128)),
sa.column('created', sa.DateTime),
)
conn = op.get_bind()
results = conn.execute(sa.select(table.c.id, table.c.path)).fetchall()
for photo_id, path in results:
path = os.path.join(current_app.config['UPLOAD_FOLDER'], path)
created = datetime.datetime.utcfromtimestamp(os.path.getctime(path))
op.execute(sa.update(table).where(table.c.id == photo_id).values(created=created))
with op.batch_alter_table('photo', schema=None) as batch_op:
batch_op.alter_column('created', existing_type=sa.DateTime(), nullable=False)
def downgrade():
with op.batch_alter_table('photo', schema=None) as batch_op:
batch_op.drop_column('created')
import secrets import secrets
import os import os
import io import io
import datetime
from flask import current_app, send_file, Markup from flask import current_app, send_file, Markup
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
...@@ -13,6 +14,7 @@ class Photo(db.Model): ...@@ -13,6 +14,7 @@ class Photo(db.Model):
id = db.Column(db.Integer(), primary_key=True, autoincrement=True) id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
mimetype = db.Column(db.String(128), nullable=False) mimetype = db.Column(db.String(128), nullable=False)
path = db.Column(db.String(128), nullable=True) path = db.Column(db.String(128), nullable=True)
created = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)
@classmethod @classmethod
def from_form(cls, filestorage): def from_form(cls, filestorage):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment