Fix migrate to new database error

This commit is contained in:
long2ice 2020-10-14 20:33:23 +08:00
parent 768747140a
commit 6339dc86a8
4 changed files with 18 additions and 11 deletions

View File

@ -2,6 +2,10 @@
## 0.3
### 0.3.2
- Fix migrate to new database error. (#62)
### 0.3.1
- Fix first version error.

View File

@ -1 +1 @@
__version__ = "0.3.1"
__version__ = "0.3.2"

View File

@ -4,7 +4,7 @@ import re
from datetime import datetime
from importlib import import_module
from io import StringIO
from typing import Dict, List, Tuple, Type
from typing import Dict, List, Optional, Tuple, Type
import click
from tortoise import (
@ -15,6 +15,7 @@ from tortoise import (
Model,
Tortoise,
)
from tortoise.exceptions import OperationalError
from tortoise.fields import Field
from aerich.ddl import BaseDDL
@ -53,8 +54,11 @@ class Migrate:
)
@classmethod
async def get_last_version(cls) -> Aerich:
return await Aerich.filter(app=cls.app).first()
async def get_last_version(cls) -> Optional[Aerich]:
try:
return await Aerich.filter(app=cls.app).first()
except OperationalError:
pass
@classmethod
def remove_old_model_file(cls, app: str, location: str):
@ -67,17 +71,16 @@ class Migrate:
async def init_with_old_models(cls, config: dict, app: str, location: str):
await Tortoise.init(config=config)
last_version = await cls.get_last_version()
cls.app = app
cls.migrate_location = os.path.join(location, app)
if last_version:
content = last_version.content
with open(cls.get_old_model_file(app, location), "w") as f:
f.write(content)
migrate_config = cls._get_migrate_config(config, app, location)
cls.app = app
cls.migrate_config = migrate_config
cls.migrate_location = os.path.join(location, app)
await Tortoise.init(config=migrate_config)
migrate_config = cls._get_migrate_config(config, app, location)
cls.migrate_config = migrate_config
await Tortoise.init(config=migrate_config)
connection = get_app_connection(config, app)
cls.dialect = connection.schema_generator.DIALECT

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "aerich"
version = "0.3.1"
version = "0.3.2"
description = "A database migrations tool for Tortoise ORM."
authors = ["long2ice <long2ice@gmail.com>"]
license = "Apache-2.0"