feat: add PostgreSQL database backend support
Add multi-database support allowing selection between SQL Server and PostgreSQL via database.active config. Changes include dialect-aware SQL generation, cross-database timestamp functions, PostgreSQL connection URL builder, and psycopg dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ from config.settings import load_settings
|
||||
def test_load_settings_success():
|
||||
"""测试成功加载配置文件"""
|
||||
settings = load_settings("tests/fixtures/test_config.yaml")
|
||||
assert settings.database.active == "sql_server"
|
||||
assert settings.database.sql_server.port == 1433
|
||||
assert settings.database.sql_server.host == "localhost"
|
||||
assert settings.database.sql_server.database == "TestDB"
|
||||
@@ -23,3 +24,14 @@ def test_database_url_property():
|
||||
assert "mssql+pyodbc" in str(url)
|
||||
assert "test_user" in str(url)
|
||||
assert "TestDB" in str(url)
|
||||
|
||||
|
||||
def test_postgresql_database_url_property():
|
||||
"""测试 PostgreSQL database_url 属性生成"""
|
||||
settings = load_settings("tests/fixtures/test_config.yaml")
|
||||
settings.database.active = "postgresql"
|
||||
url = settings.database_url
|
||||
assert url.drivername == "postgresql+psycopg"
|
||||
assert url.host == "localhost"
|
||||
assert url.port == 5432
|
||||
assert url.database == "TestDB"
|
||||
|
||||
Reference in New Issue
Block a user