EVE SDE的可插拔django应用程序

armada-sde的Python项目详细描述


阿玛达SDE

Build StatusCoverage Status

Armada SDE是Django的一个可插入应用程序,它提供了使用FuzzySteve的PostgreSQL转储的模型和工具。它的 design允许您自动升级sde数据,并为其中包含的任何表生成新模型。

用法

直接从PYPI获取ARMADA SDE的最新版本:

pip install armada-sde

添加到django的settings.py

INSTALLED_APPS=[# ...'armada_sde',]

下载fuzzysteve的latest schema dump进行postgres并解压缩:

wget https://www.fuzzwork.co.uk/dump/postgres-schema-latest.dmp.bz2
bunzip2 postgres-schema-latest.dmp.bz2

导入转储文件

python manage.py pg_import_sde -f postgres-schema-latest.dmp

如果您想自己处理导入,请使用-s运行pg_import_sde,而不使用-f。这将重命名表, 因此,更好地适应django的最佳实践。

导入后,需要将表从evesde架构移动到公共架构:

python manage.py pg_move_sde

现在您应该可以导入模型并使用它们:

fromdjango.dbimportmodelsfromarmada_sde.modelsimportInvType# Trit for the trit godtrit=InvType.objects.get(name='Tritanium')# Use it in your modelsclassShoppingListItem(models.Model):quantity=models.IntegerField(default=1)item=models.ForeignKey(InvType,on_delete=models.DO_NOTHING)

高级用法

生成模型

Armada_SDE配备了一套库存模型,通过Django的定制版本自动生成 inspectdb命令。如果您愿意,可以生成自己的模型集并进行自己的修改。首先,导入 如前所述转储,因此它出现在evesde架构中。然后可以生成模型文件:

python manage.py pg_generate_models -o project/myapp/models.py

生成之后,使用pg_move_sde命令将表移动到公共模式并生成主键。 你现在可以做任何你喜欢的改动。如果要为模型生成迁移,请删除 managed = False来自元类。

如果需要,还可以通过配置 Armada_SDE将加载您的自定义变体,而不是库存模型。将此添加到您的settings.py

ARMADA={'SDE':{'module':'project.myapp.models'}}

armada_sde.models导入模型的任何其他应用程序都将从项目中加载自定义模型。

为sde使用自定义模式

如果要在多个项目之间共享数据库,则为sde提供共享架构可能很方便。你可以 将armada sde配置为使用表的自定义目标模式,而不是将表从evesde移动到public。

为此,请在settings.py

中设置这些参数
ARMADA={'SDE':{'schema':'<your_sde_schema>'}}

使用evesde模式作为自定义模式不是一个好主意,因为它可能会在升级 SDE公司。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java,我如何在方法中放置一个开关盒?   Java将数组添加到数组特殊模式   java的类常量和文件导入   如何在java中使用正则表达式更改匹配子字符串的前缀和后缀   Java Hashmap实现中的字符串哈希问题   java如何计算数组中的连续数字组   处理异常后如何在java中重新启动thrift服务器?   java嵌套列表迭代器。程序不会终止   如何在maven目标目录下的JAR文件中运行java类?   mysql Java JPA/Hibernate级联删除   java使用ApachePDFBox在PDF中查找javascript代码   java将hsqlDB集成到netbeans 7 IDE中   java如何删除word梯形图中的最后一个“>”   java如何存储由Minimax扩展的节点数