不使用ORM如何优雅管理数据库更新
1. 使用 SQL 脚本管理数据库初始化
在项目初始化阶段,直接使用 SQL 脚本来创建数据库结构和初始化数据。
步骤
-
创建初始化 SQL 脚本
- 将所有创建表、索引、外键约束和初始数据插入操作写入一个 SQL 文件(如
init.sql)。 - 示例
init.sql文件:-- 创建表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id)
);
-- 插入初始数据
INSERT INTO users (username, password, email) VALUES
('admin', 'hashed_password', 'admin@example.com'),
('test_user', 'hashed_password', 'test@example.com');
- 将所有创建表、索引、外键约束和初始数据插入操作写入一个 SQL 文件(如
-
执行 SQL 脚本 使用
psql或其他数据库客户端工具执行脚本:psql -U postgres -d your_database -f init.sql -
版本控制 将
init.sql文件放入项目的migrations或db文件夹,并使用 Git 等工具对其进行版本控制。
2. 数据库迁移管理
当项目升级需要修改数据库表结构时(如新增字段、修改字段类型、删除表等),可以通过以下方式优雅地管理迁移。