gpt4 book ai didi

python - 如何为 Django 测试自动创建 postgis 数据库?

转载 作者:太空狗 更新时间:2023-10-30 02:35:43 27 4
gpt4 key购买 nike

我正在尝试按照 Django testing docs 中的信息测试在 PostGIS 数据库上运行的 Django 应用程序.

通常我通过复制模板创建一个新数据库:

(作为用户 postgres)

createdb -T template_postgis -O lizard test_geodjango2

当我运行 ./manage.py test 时,我收到以下消息:

Creating test database...Got an error creating the test database: permission denied to create database

Type 'yes' if you would like to try deleting the test database 'test_geodjango2', or 'no' to > cancel:

让系统创建数据库的最佳方式是什么?

最佳答案

可能是您的 DATABASE_USER 没有创建新数据库/模式的权限。


编辑

如果您阅读 Django test 命令的源代码,您会发现它总是创建一个测试数据库。此外,它会修改您的设置以引用此测试数据库。

看这个:http://docs.djangoproject.com/en/dev/topics/testing/#id1

你应该做的是使用 fixtures .以下是我们的做法。

  1. 从您的模板数据库中,创建一个“fixture”。使用 manage.py dumpdata 命令创建包含所有模板数据的 JSON 文件。 [提示,--indent=2 选项为您提供可编辑和修改的可读 JSON。]

  2. 将它放在应用程序下的 fixtures 目录中。

  3. 在您的 TestCase 类定义中引用 fixtures 文件。这将在运行测试之前加载夹具。

    class AnimalTestCase(TestCase):
    fixtures = ['mammals.json', 'birds']
    def testFluffyAnimals(self):
    etc.

fixtures 替换了你的模板数据库。有了固定装置后,您就不再需要模板了。

关于python - 如何为 Django 测试自动创建 postgis 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com