- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Pyramid + SQLAlchemy + URL Dispatch Wiki Tutorial 中注意到当应用程序运行时,数据库在主函数中初始化。
def main(global_config, **settings):
""" This function returns a WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
# -- and so on ---
其中initialize_sql
定义如下:
def initialize_sql(engine):
DBSession.configure(bind=engine)
Base.metadata.bind = engine
Base.metadata.create_all(engine)
try:
session = DBSession()
page = Page('FrontPage', 'initial data')
session.add(page)
transaction.commit()
except IntegrityError:
# already created
pass
这实际上创建了所有表(如果它们不存在)并用一些初始值填充它。很容易理解,但是......
这只是一个演示小型应用程序的教程,因此它在生产中的典型完成方式可能会有所不同(或不会...)。这引出了我的问题:
当将 Pyramid 与 SQLAlchemy 一起使用时,以这种方式初始化数据库是生产中的典型模式,还是通常使用与调用的 Django 中的 manage syncdb
命令等效的东西手动?
最佳答案
由于 Pyramid 不对数据模型做出任何假设,因此它不会尝试为您管理它们。这完全取决于您以及您使用的具体数据层。
关于使用 SQLAlchemy,可以使用 SQLAlchemy-migrate 包管理迁移。当您设置它时,它会为您提供一个管理
命令来执行迁移。
关于python - Pyramid 相当于 Django 的 syncdb 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754465/
我想创建一个名为“database1.sqlite”的数据库的表,所以我运行命令: python manage.py syncdb 但是当我执行命令时,我收到以下错误: Unknown command
您好,我对 Django 还很陌生,刚刚学习了 Python。我正在努力将其设置好。所以现在道歉! 我安装了 django 和 python (windows 7)。到目前为止,教程中的所有内容(某种
我有一个具有以下结构模型的 Django 项目: my_model/ ├── __init__.py ├── models/ ├── __init__.py ├── my_model.
我有一个项目,结构如下: project/ __init__.py db/ models/ __init__.py article.py
有没有办法在不加载 fixture 的情况下运行 syncdb?xo 最佳答案 ./manage.py help syncdb 建议如下: ./manage.py syncdb --no-initia
我试图让我的应用程序在 syncdb 上运行一些自定义 SQL,官方方法是将一些 INSERT 语句放入/sql/.sql 现在,当我运行“manage.py sqlall”时,我想要运行的所有 SQ
我正在新的开发环境中部署一个项目。 当我使用 South 时,我做了: $ python manage.py syncdb --all $ python manage.py migrate --fak
这次我想不是我愚蠢,而是真正的冲突。我有以下代码(简化): from django.db import models class Alpha(models.Model): relation =
是否可以让 manage.py syncdb 命令仅将自定义权限同步到 auth_permission table ?我不想为应用模型安装默认的三个权限,即 foo.add_bar , foo.cha
我在 PostgreSql 中有一个名为“tests”的数据库。我想编写 sh 脚本以将其与 django 同步,运行测试然后删除所有表。谁能提出合适的解决方案?一些脚本: DJANGO_DATABA
我是 python 和 Django 的新手,自从我们的编码员离开海外后,我实际上被派去为我的公司完成一些编码。 当我运行 python manage.py syncdb 时,我收到以下错误 psyc
我正在运行 syncdb。 Django 找到一个内容类型,我已经删除了相应的表: The following content types are stale and need to be delet
我添加了新模型并推送到我们的登台服务器,运行 syncdb 来创建它们的表,然后它就锁定了。就“创建表 photosusertag”而言,postgres 输出显示创建“photos_photouse
我有一些抛出的代码导致 syncdb 抛出错误(因为它试图在创建表之前访问模型)。 有没有办法让代码不在 syncdb 上运行?像这样的东西: if not syncdb: run_some_
我在基于 django 的应用程序中使用 Neo4Django,并尝试同时使用两个数据库:Neo4j 和 PostGIS。因此,我按照文档( http://neo4django.readthedocs
我的 models.py 中有这个: class AuditableTable(models.Model): class Meta: abstract = True
以前可以,现在不行了。 python manage.py syncdb 不再为我的应用创建表格。 来自 settings.py: INSTALLED_APPS = ( 'django.cont
我向现有模型添加了一个多对多字段,并期望 syncdb 创建一个新表,但那里什么也没有。这是模型的样子: class Author(models.Model): first_name = mo
我最近更新了我的模型,向它添加了一个 BooleanField,但是当我执行 python manage.py syncdb 时,它不会将新字段添加到模型的数据库中。我该如何解决这个问题? 最佳答案
我想了解 ./manage.py syncdb --all 究竟做了什么?我最近遇到了一个数据库问题,我可以通过运行此命令来修复它,但我不确定它在幕后做了什么。我知道 syncdb 为未随南方迁移的已
我是一名优秀的程序员,十分优秀!