sqlalchemy-migrate 数据库未受控错误异常

0 投票
1 回答
1556 浏览
提问于 2025-04-18 17:54

我想在我现有的数据库中添加一个新列,这个数据库最开始是用 sqlalchemy 创建的。

我尝试使用 sqlalchemy-migrate 工具来实现这个目标,但遇到了以下错误:

C:\Users\sk11\Desktop\playground\migrateDB>%PYTHON_EXE% manage.py db_version
Traceback (most recent call last):
  File "manage.py", line 5, in <module>
    main(url='sqlite:///Results.db', debug='False', repository='sdb')
  File "C:\Python27\lib\site-packages\sqlalchemy_migrate-0.7.2-py2.7.egg\migrate\versioning\shell.py", line 207, in main
    ret = command_func(**kwargs)
  File "<string>", line 2, in db_version
  File "C:\Python27\lib\site-packages\sqlalchemy_migrate-0.7.2-py2.7.egg\migrate\versioning\util\__init__.py", line 159, in with_engine
    return f(*a, **kw)
  File "C:\Python27\lib\site-packages\sqlalchemy_migrate-0.7.2-py2.7.egg\migrate\versioning\api.py", line 148, in db_version
    schema = ControlledSchema(engine, repository)
  File "C:\Python27\lib\site-packages\sqlalchemy_migrate-0.7.2-py2.7.egg\migrate\versioning\schema.py", line 32, in __init__
    self.load()
  File "C:\Python27\lib\site-packages\sqlalchemy_migrate-0.7.2-py2.7.egg\migrate\versioning\schema.py", line 44, in load
    self.table = Table(tname, self.meta, autoload=True)
  File "build\bdist.win32\egg\sqlalchemy\schema.py", line 318, in __new__
  File "build\bdist.win32\egg\sqlalchemy\schema.py", line 381, in _init
  File "build\bdist.win32\egg\sqlalchemy\schema.py", line 408, in _autoload
  File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 2426, in run_callable
  File "build\bdist.win32\egg\sqlalchemy\engine\base.py", line 1969, in run_callable
  File "build\bdist.win32\egg\sqlalchemy\engine\default.py", line 260, in reflecttable
  File "build\bdist.win32\egg\sqlalchemy\engine\reflection.py", line 412, in reflecttable
migrate.exceptions.DatabaseNotControlledError: migrate_version

我完全按照 文档 中的步骤操作。在检查 db_version 之前(我在这一步遇到了上面的错误),我尝试了 version 命令,结果是正常的。

C:\Users\sk11\Desktop\playground\migrateDB>C:\Python27\Scripts\migrate.exe manage manage.py --repository=sdb --url=sqlite:///Results.db

C:\Users\sk11\Desktop\playground\migrateDB>%PYTHON_EXE% manage.py version
0

有没有人能给点建议,看看我该往哪里找问题,或者我哪里做错了?

1 个回答

3

我发现数据库没有被添加到版本控制的仓库里。

因为我在我的仓库里有多个数据库,所以我添加了错误的数据库,而不是我想要的那个。

$ python my_repository/manage.py version_control sqlite:///project.db my_repository

撰写回答