- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有一个指向 MySQL 数据库的引擎
:
engine = create_engine('mysql://arthurdent:answer42@localhost/dtdb', echo=True)
我可以通过以下方式用表、FK 等填充 dtdb
:
metadata.create_all(engine)
有没有一种简单的方法来生成包含所有 DDL 语句的 SQL 文件,而不是将这些 DDL 语句实际应用于 dtdb
?
到目前为止,我已经求助于捕获 echo=True
生成的 SQLAlchemy 日志输出,并手动编辑它。但这太痛苦了。
看起来 SA 有非常精细的模式管理 API,但我还没有看到将模式定义简单地流式传输为文本的示例。
最佳答案
快速答案在 SQLAlchemy 0.8 FAQ 中.
在 SQLAlchemy 0.8 中你需要做的
engine = create_engine(
'mssql+pyodbc://./MyDb',
strategy='mock',
executor= lambda sql, *multiparams, **params: print (sql.compile(dialect=engine.dialect)))
在 SQLAlchemy 0.9 中,语法得到了简化。
engine = create_engine(
'mssql+pyodbc://./MyDb',
strategy='mock',
executor= lambda sql, *multiparams, **params: print (sql)
较长的答案是捕获输出仍然存在一些小问题。就像类型文字的编码一样。但这还不是一个大到足以让任何人站出来挠痒痒的问题。您始终可以让 SQLAlchemy 以编程方式创建一个空数据库并从那里转储 SQL。
更困难的问题是模式迁移的处理。这是SQLAlchemy-migrate的地方可以帮助你。
关于python - 如何在 SQLAlchemy 中使用引擎的 SQL 方言生成带有 DDL 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870925/
Hibernate是独立于数据库的。因此,无论我们将在应用程序中使用什么数据库,我们都需要设置与该数据库相关的方言。 例如,假设我们正在使用MySQL数据库,那么我们需要下面的方言: org.hibe
我正在使用 Hibernate 从 sql server 2008 访问数据。同时执行以下代码 Session session = sessionFactory.openSession(); Stri
我的 PostgreSQL 版本是10.5。 hibernate.version 4.3.8.Final 的正确 Hibernate 方言是什么? 请注意,问题是关于正确的 Hibernate Dia
Hibernate 可以选择自动检测 hibernate.dialect .如何检索该自动检测到的值?我无法找到有关此的任何信息。 最佳答案 您可以从 SessionFactory 检索它但您需要将其
我对 Sequelize 还很陌生,虽然我以前在 Node 上工作过,但我没有使用任何 ORM 框架。目前我正在使用新的 SQL DB(sequelize 不支持)并希望通过对现有方言进行原型(pro
我遇到了一个奇怪的问题,目前无法解决。 今天我无法再启动我的 grails 应用程序。应用程序代码没有改变,上周运行顺利。 这是输出: | Loading Grails 2.0.3 | Configu
我是 Hibernate 新手。在阅读 Hibernate 时,我遇到了 Dialect 属性。无论我们在应用程序中使用什么数据库,我们都需要设置与该数据库相关的方言,Hibernate 将生成与该数
对于用 Python 编写 Lisp 方言/解释器,您有什么建议吗?我想从几个基本命令开始,例如 set、print 和 define 或其他命令。 最佳答案 Python 中有一个功能齐全的 Sch
是否有任何 Lisp 或 scheme 方言可以很好地支持数组和线性代数操作。我所说的良好支持并不是指 BLAS/LAPACk 的接口(interface),而是语言本身的高效数组原语。比如说,如果它
我在 PhpStorm 中总是遇到这样的问题,即我的 PDO 准备语句带有下划线,显示为“在主题类中找不到方法‘(ex.execute)’”。 是否有可能将 PDO/准备好的语句添加到 PhpStor
在我的应用程序中,我将 Hibernate 与 SQL Server 数据库一起使用,所以我设置了 在我的 persistence.xml 中。 在某些情况下,我想对包含 NULL 的记录进行排序,
我已经实现了 Hibernate's multitenant database architecture ,其中根据租户选择特定的数据库连接。我正在使用 Spring 4.3 和 Hibernate
我有以下 hibernate.cfg.xml NHibernate.Driver.OracleClientDriver User ID=user;Password=passw
在 Vim 中,需要使用\(\) 来对一些字符序列进行分组。其他特价商品也有相同的行为:\{\}。 是否可以将正则表达式样式更改为像在 perl 中一样?如何切换? 反而 \\( 我会 ( ??? 最
我正在使用 Spring 3.2.1、EclipseLink 2.4 和 JPA 2.0 当我使用非默认隔离级别时出现错误。 Exception in thread "main" org.spring
我想从 SWI-Prolog 切换到 Prova - 但似乎比预期的要难: 谓词如 succ()不可用,操作如 Var1+Var2>Var3不工作(显然它必须是 Var3
我正在尝试查询 Firebird 数据库的 SQL 方言(使用嵌入式驱动程序): procedure TFrmFireDACEmbed.BtnGetDBDialectClick(Sender: TOb
任何在 BASIC 环境下长大,后来转向另一种语言的人,都很难习惯使用“(a == b)”而不是“(a = b)”来测试相等性。 是否有一种 BASIC 方言使用“==”运算符进行比较,而不是重载“=
我的应用程序中使用了多个数据库,redshift 就是其中之一。由于使用 hibernate 框架来配置连接,我尝试使用适当的方言进行红移。但是 PostgreSQL9Dialect 和 MySQL5
您知道是否有将 Amazon SimpleDB 与 NHibernate 一起使用的方法吗? LightSpeed seems to be compatible . 最佳答案 NHibernate 更
我是一名优秀的程序员,十分优秀!