如何使用python脚本进行数据库迁移?

拉胡尔

是否可以从python脚本进行迁移?

我试图在没有外壳的Heliohost上使用django,但可以使用python脚本。

something like

from django import shell
shell.main(['mysite/manage.py', 'migrate'])

编辑

使用来自@Shadow的输入,我尝试将这段代码放入views.py文件中

def migrate(request):
    django.setup()
    from django.core.management import call_command
    call_command("migrate", interactive=False)
    return HttpResponse("Final Migration Successful")

然后访问映射到要迁移的URL,并返回“最终迁移成功”

然后我尝试了数据库

from .models import Question


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

给我错误:

(1146, "Table 'usr_mydb.polls_question' doesn't exist")

从Django教程中:

绕过manage.py

如果您不想使用manage.py,那没问题。只需将DJANGO_SETTINGS_MODULE环境变量设置为mysite.settings,启动一个普通的Python shell并设置Django:

>>> import django
>>> django.setup()

如果这引发AttributeError,则您可能使用的是与本教程版本不匹配的Django版本。您将要切换到较旧的教程或较新的Django版本。

您必须从manage.py所在的目录运行python,或者确保该目录位于Python路径上,以便导入mysite起作用。

有关所有这些的更多信息,请参见django-admin文档。

但是,文档中却无处可python manage.py <command>使用django.setup()

阴影

您可以使用call_command运行django manage命令。

这是一个使用它调用迁移的示例。

from django.core.management import call_command
call_command("migrate", interactive=False)

我有,interactive=False因为它在连续集成服务器上运行-但是根据您的用法,您可能希望省略它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Azure PowerShell进行数据库迁移

如何使用 Flask-Migrate 进行数据库迁移?

如何使用SSH隧道编写数据库迁移脚本?

使用PostgreSQL的flyway或dbup(.net库/ dbup扩展名)进行数据库迁移

CodeFirst迁移:自动完成“更新数据库”后如何运行数据库脚本(C#或SQL)?

如何使用VistaDB进行数据库备份?

使用不同的DBMS使用Liquibase进行数据库迁移

如何进行数据库迁移,目标在此期间保持完全可操作

Laravel 5中使用--force在生产中使用种子播发器进行数据库迁移

如何在Azure中的新数据库上运行数据库迁移?

使用EF6和.NET 4.6.1进行数据库迁移时遇到多个错误

使用sequelize-cli进行数据库迁移以添加新列不会在postgres数据库中显示任何结果

如何使用SQL数据库的其他方式进行数据存储

在具有不同结构的两个数据库之间进行数据迁移(PostgreSQL)

如何在远程计算机上以本地用户名运行R脚本(使用集成的Windows身份验证进行数据库连接)?

如何对Django数据库迁移进行单元测试?

如何对偏离相应模型的数据库进行初始迁移?

如何正确进行异步/并行数据库调用

如何从 Electron 前端进行数据库调用?

使用事务进行Rails数据库迁移

使用 Vault 进行 Postgres 数据库迁移

使用JPA进行数据库操作

使用dbplyr进行数据库计算

使用Firebase进行数据库更新的后台通知

使用 async-await 进行数据库查询

如何避免先使用Entity Framework代码和现有数据库进行迁移?

如何使用参与者进行数据库访问和DDD?

如何在Flutter中使用SQFlite进行数据库插入

如何在Flutter中使用SQFlite进行数据库更新