Skip to content

Commit 9cefd9e

Browse files
committed
refactor: switched from sqlite to postgresql as default db
1 parent 0ea130a commit 9cefd9e

File tree

4 files changed

+59
-21
lines changed

4 files changed

+59
-21
lines changed

.env.example

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
DB_TYPE=sqlite # Options: postgresql, mysql
2-
DB_NAME=db.sqlite3
1+
# DB_TYPE Options: sqlite, mysql
2+
DB_TYPE=postgresql
3+
DB_NAME=fastapidb
34
DB_USER=fastapiusr
45
DB_PASSWORD=fastapipwd
56
DB_HOST=localhost
6-
DB_PORT=
7+
DB_PORT=5432
78
# Uncomment the line below if DB_TYPE=postgresql
8-
# DB_URL=postgresql://fastapiusr:fastapipwd@localhost:5432/fastapidb
9+
DB_URL=postgresql://fastapiusr:fastapipwd@localhost:5432/fastapidb
10+
# Uncomment the line below if DB_TYPE=sqlite
11+
# DB_URL=sqlite:///./db.sqlite3
912
# Uncomment the line below if DB_TYPE=mysql
1013
# DB_URL=mysql+pymysql://fastapiusr:fastapipwd@localhost:3306/fastapidb
1114
MYSQL_DRIVER=

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ A Makefile has been provided for easy project setup.
4747

4848
This command will copy an `.env` file into your directory. Open it and update the values before you proceed.
4949

50+
- **Make Migrations**
51+
52+
Run the alembic migration to create the Tables in your database.
53+
54+
```bash
55+
make migrate
56+
```
57+
5058
- **Run Checks**
5159

5260
Ensure that everything is set up correctly:
@@ -57,8 +65,6 @@ A Makefile has been provided for easy project setup.
5765

5866
- **Run the Development Server**
5967

60-
To start the development server, use:
61-
6268
```bash
6369
make run
6470
```
@@ -67,7 +73,7 @@ A Makefile has been provided for easy project setup.
6773

6874
- **Cleaning Up**
6975

70-
To clean up the project directory, removing unnecessary files and directories, use:
76+
To clean up the project directory:
7177

7278
```bash
7379
make clean

alembic/versions/7e577c112da6_.py renamed to alembic/versions/79befb39e85d_initial_migration.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
"""empty message
1+
"""Initial migration
22
3-
Revision ID: 7e577c112da6
3+
Revision ID: 79befb39e85d
44
Revises:
5-
Create Date: 2024-07-22 07:10:14.095276
5+
Create Date: 2024-07-23 00:30:05.827819
66
77
"""
88

@@ -13,7 +13,7 @@
1313

1414

1515
# revision identifiers, used by Alembic.
16-
revision: str = "7e577c112da6"
16+
revision: str = "79befb39e85d"
1717
down_revision: Union[str, None] = None
1818
branch_labels: Union[str, Sequence[str], None] = None
1919
depends_on: Union[str, Sequence[str], None] = None
@@ -33,13 +33,13 @@ def upgrade() -> None:
3333
"created_at",
3434
sa.DateTime(timezone=True),
3535
server_default=sa.text("now()"),
36-
nullable=True,
36+
nullable=False,
3737
),
3838
sa.Column(
3939
"updated_at",
4040
sa.DateTime(timezone=True),
4141
server_default=sa.text("now()"),
42-
nullable=True,
42+
nullable=False,
4343
),
4444
sa.PrimaryKeyConstraint("id"),
4545
sa.UniqueConstraint("title"),

api/v1/models/blog.py

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,42 @@ class Blog(Base):
1111

1212
__tablename__ = "blogs"
1313

14-
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
15-
title = Column(String(255), nullable=False, unique=True)
16-
excerpt = Column(String(300), nullable=False)
17-
content = Column(Text, nullable=False)
18-
image_url = Column(String(255), nullable=False)
19-
is_deleted = Column(Boolean, default=False, nullable=False)
20-
created_at = Column(DateTime(timezone=True), server_default=func.now())
14+
id = Column(
15+
Integer,
16+
primary_key=True,
17+
index=True,
18+
autoincrement=True,
19+
)
20+
title = Column(
21+
String(255),
22+
nullable=False,
23+
unique=True,
24+
)
25+
excerpt = Column(
26+
String(300),
27+
nullable=False,
28+
)
29+
content = Column(
30+
Text,
31+
nullable=False,
32+
)
33+
image_url = Column(
34+
String(255),
35+
nullable=False,
36+
)
37+
is_deleted = Column(
38+
Boolean,
39+
default=False,
40+
nullable=False,
41+
)
42+
created_at = Column(
43+
DateTime(timezone=True),
44+
server_default=func.now(),
45+
nullable=False,
46+
)
2147
updated_at = Column(
22-
DateTime(timezone=True), server_default=func.now(), onupdate=func.now()
48+
DateTime(timezone=True),
49+
server_default=func.now(),
50+
onupdate=func.now(),
51+
nullable=False,
2352
)

0 commit comments

Comments
 (0)