Skip to content

Commit 7244319

Browse files
committed
Changes needed for flask db commands to work properly
1 parent 8e9369d commit 7244319

File tree

3 files changed

+54
-12
lines changed

3 files changed

+54
-12
lines changed

app.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
from datetime import datetime
2+
import os
3+
14
from flask import Flask, render_template, request, redirect, url_for, send_from_directory
25
from flask_sqlalchemy import SQLAlchemy
36
from flask_migrate import Migrate
47
from flask_wtf.csrf import CSRFProtect
5-
from datetime import datetime
6-
import os
8+
79

810
app = Flask(__name__, static_folder='static')
911
csrf = CSRFProtect(app)
@@ -29,13 +31,9 @@
2931
# Enable Flask-Migrate commands "flask db init/migrate/upgrade" to work
3032
migrate = Migrate(app, db)
3133

32-
# Create databases, if databases exists doesn't issue create
33-
# For schema changes, run "flask db migrate"
34+
# The import must be done after db initialization due to circular import issue
3435
from models import Restaurant, Review
3536

36-
with app.app_context():
37-
db.create_all()
38-
3937
@app.route('/', methods=['GET'])
4038
def index():
4139
print('Request for index page received')
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
"""Initial migration.
2+
3+
Revision ID: d0c7b8e4b57c
4+
Revises:
5+
Create Date: 2022-11-08 17:00:02.151921
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = 'd0c7b8e4b57c'
14+
down_revision = None
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.create_table('restaurant',
22+
sa.Column('id', sa.Integer(), nullable=False),
23+
sa.Column('name', sa.String(length=50), nullable=True),
24+
sa.Column('street_address', sa.String(length=50), nullable=True),
25+
sa.Column('description', sa.String(length=250), nullable=True),
26+
sa.PrimaryKeyConstraint('id')
27+
)
28+
op.create_table('review',
29+
sa.Column('id', sa.Integer(), nullable=False),
30+
sa.Column('restaurant', sa.Integer(), nullable=True),
31+
sa.Column('user_name', sa.String(length=30), nullable=True),
32+
sa.Column('rating', sa.Integer(), nullable=True),
33+
sa.Column('review_text', sa.String(length=500), nullable=True),
34+
sa.Column('review_date', sa.DateTime(), nullable=True),
35+
sa.ForeignKeyConstraint(['restaurant'], ['restaurant.id'], ondelete='CASCADE'),
36+
sa.PrimaryKeyConstraint('id')
37+
)
38+
# ### end Alembic commands ###
39+
40+
41+
def downgrade():
42+
# ### commands auto generated by Alembic - please adjust! ###
43+
op.drop_table('review')
44+
op.drop_table('restaurant')
45+
# ### end Alembic commands ###

models.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
from app import db
21
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime
3-
from sqlalchemy.orm import declarative_base, validates
2+
from sqlalchemy.orm import validates
3+
4+
from app import db
45

5-
# declarative base class
6-
Base = declarative_base()
76

87
class Restaurant(db.Model):
98
__tablename__ = 'restaurant'
@@ -29,4 +28,4 @@ def validate_rating(self, key, value):
2928
return value
3029

3130
def __str__(self):
32-
return self.restaurant.name + " (" + self.review_date.strftime("%x") +")"
31+
return self.restaurant.name + " (" + self.review_date.strftime("%x") +")"

0 commit comments

Comments
 (0)