summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2024-02-02 17:04:56 -0600
committerHombreLaser <sebastian-440@live.com>2024-02-02 17:04:56 -0600
commitac9746d316271f545776388eb945924ff28fe756 (patch)
treef14cdabff567bd893944a8964d619a3722c2863f
parente417fee5c4afdaae46bb08eba9f31faa80c67e84 (diff)
Add Comment
-rw-r--r--migrations/versions/742bdc6e0718_add_comments.py45
-rw-r--r--src/database/models/__init__.py3
-rw-r--r--src/database/models/blog.py5
-rw-r--r--src/database/models/comment.py17
4 files changed, 67 insertions, 3 deletions
diff --git a/migrations/versions/742bdc6e0718_add_comments.py b/migrations/versions/742bdc6e0718_add_comments.py
new file mode 100644
index 0000000..1684b62
--- /dev/null
+++ b/migrations/versions/742bdc6e0718_add_comments.py
@@ -0,0 +1,45 @@
+"""Add comments
+
+Revision ID: 742bdc6e0718
+Revises: 7a92bef47675
+Create Date: 2024-02-02 16:13:58.339249
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '742bdc6e0718'
+down_revision = '7a92bef47675'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.create_table('comments',
+ sa.Column('id', sa.BigInteger(), nullable=False),
+ sa.Column('content', sa.Text(), nullable=False),
+ sa.Column('language', sa.String(length=16), nullable=False),
+ sa.Column('email', sa.String(length=256), nullable=False),
+ sa.Column('post', sa.String(length=1024), nullable=False),
+ sa.Column('blog_id', sa.BigInteger(), nullable=False),
+ sa.Column('created_at', sa.DateTime(), nullable=True),
+ sa.Column('updated_at', sa.DateTime(), nullable=True),
+ sa.ForeignKeyConstraint(['blog_id'], ['blogs.id'], ),
+ sa.PrimaryKeyConstraint('id')
+ )
+ with op.batch_alter_table('comments', schema=None) as batch_op:
+ batch_op.create_index(batch_op.f('ix_comments_blog_id'), ['blog_id'], unique=False)
+
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ with op.batch_alter_table('comments', schema=None) as batch_op:
+ batch_op.drop_index(batch_op.f('ix_comments_blog_id'))
+
+ op.drop_table('comments')
+ # ### end Alembic commands ###
diff --git a/src/database/models/__init__.py b/src/database/models/__init__.py
index 8b13789..0647151 100644
--- a/src/database/models/__init__.py
+++ b/src/database/models/__init__.py
@@ -1 +1,2 @@
-
+from src.database.models.blog import Blog
+from src.database.models.comment import Comment
diff --git a/src/database/models/blog.py b/src/database/models/blog.py
index 6a0fb42..f18c7b6 100644
--- a/src/database/models/blog.py
+++ b/src/database/models/blog.py
@@ -1,6 +1,6 @@
-import datetime
+from typing import List
from sqlalchemy import BigInteger, String, DateTime
-from sqlalchemy.orm import mapped_column, Mapped
+from sqlalchemy.orm import mapped_column, Mapped, relationship
from src.database import db
@@ -9,5 +9,6 @@ class Blog(db.Model):
id = mapped_column(BigInteger, primary_key=True)
domain: Mapped[str] = mapped_column(String(255), nullable=False, unique=True)
+ comments = relationship('Comment', back_populates='blog')
created_at = mapped_column(DateTime)
updated_at = mapped_column(DateTime)
diff --git a/src/database/models/comment.py b/src/database/models/comment.py
new file mode 100644
index 0000000..0110e75
--- /dev/null
+++ b/src/database/models/comment.py
@@ -0,0 +1,17 @@
+from sqlalchemy import BigInteger, String, DateTime, Text, ForeignKey
+from sqlalchemy.orm import mapped_column, Mapped, relationship
+from src.database import db
+
+
+class Comment(db.Model):
+ __tablename__ = 'comments'
+
+ id = mapped_column(BigInteger, primary_key=True)
+ content: Mapped[str] = mapped_column(Text)
+ language: Mapped[str] = mapped_column(String(16), nullable=False)
+ email: Mapped[str] = mapped_column(String(256))
+ post: Mapped[str] = mapped_column(String(1024), nullable=False)
+ blog_id: Mapped[int] = mapped_column(ForeignKey('blogs.id'), index=True)
+ blog = relationship('Blog', back_populates='comments')
+ created_at = mapped_column(DateTime)
+ updated_at = mapped_column(DateTime)