如何使用 SQLalchemy 和 Alembic 自动初始化数据库?

2024-01-09

目前,我运行

$ flask db init
$ flask db migrate -m "initialization"
$ flask db upgrade

如果数据库不存在。我想在 Python 中运行它,例如就像是

app.create_db()

这样我就不必关心设置数据库了。那可能吗?

我用flask-sqlalchemy and flask-migrations plugins


您可以使用SQLAlchemy 实用程序 https://pypi.org/project/SQLAlchemy-Utils/为了这。

from sqlalchemy import create_engine
from sqlalchemy_utils import database_exits,create_database

def validate_database():
     engine = create_engine('postgres://postgres@localhost/name')
     if not database_exists(engine.url): # Checks for the first time  
         create_database(engine.url)     # Create new DB    
         print("New Database Created"+database_exists(engine.url)) # Verifies if database is there or not.
     else:
         print("Database Already Exists")

在 __init__.py 文件中调用此方法,以便它在每次服务器启动时进行检查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SQLalchemy 和 Alembic 自动初始化数据库? 的相关文章

随机推荐

  • 如何在 SQL Server 中创建触发器来阻止特定 IP 地址的登录用户?

    我注意到大量定期从特定 IP 地址使用 SA 帐户进行登录尝试 我想使用 SQL 触发器或其他一些方法来根据用户的 IP 地址阻止这些用户访问数据库 我能够创建一个数据库表来通过一个存储过程收集失败的尝试 我计划安排该存储过程每 10 分钟
  • 合并工作表并在 Excel 中添加列

    我有一个工作表 其中包含多个选项卡 用于标识不同的数据源 我需要将所有工作表合并为一个 并添加一个包含工作表名称的列作为新组合工作表的一部分 我找到了以下代码 如果我剪切 粘贴到我的工作表中 它就像一个魅力 但我有几个这样的工作簿 我必须能
  • 获取 CSS 属性列表

    你好 有没有办法检查 HTML 元素应用了哪些 CSS 属性 我不需要任何浏览器插件 使用 javascript 我想获取 html 元素上设置的所有 CSS 属性的列表 如果那不可能 我总是可以编写 100 行代码并检查每个 css 属性
  • Django Rest Framework - 更新外键

    我对使用 Django Rest Framework 遇到的这个问题感到有点沮丧 我正在使用一个viewset 有一个custom serializer 这个序列化器有它的depth set to 1 当我查询此视图集时 我得到了正确的数据
  • 调用 free 之前检查 NULL

    许多 C 代码释放指针调用 if p free p 但为什么 我认为 C 标准说的是free给定 NULL 指针 函数不会执行任何操作 那么为什么还要进行另一次显式检查呢 构造 free NULL 在 C 中一直没问题 回到 Dennis
  • 如何避免换行填充?

    我对 HTML 最大的抱怨是换行符在元素之间添加了一点空间 jsFiddle http jsfiddle net SpeTC 这可能会搞乱子元素大小的布局exactly适合他们的父母 我在某处读到 您可以通过使用如下注释来删除这种隐式填充
  • 如何使用 Spring Boot 和 @FeignClient 发送 Bearer 授权令牌

    我正在使用 Spring Boot 编写一个与 HTTP Rest 服务器交互的应用程序 我连接的服务器之一 Wit ai 使用承载者授权令牌 产生成功响应的卷曲请求如下所示 GET message q sample message HTT
  • 在列表框中选择相同的索引

    我正在 asp net 中制作一个网站 我有 2 个列表框 lbxPlayer1 and lbxPlayer2 lbxPlayer1 Items Add bob lbxPlayer1 Items Add jack lbxPlayer1 It
  • pid=`cat $pidfile` 或读取 pid <$pidfile?

    我读了很多init d脚本和 pid cat pidfile 线条让我悲伤 我不明白为什么人们不使用 read pid lt pidfile 最后一个示例使用 POSIX 兼容语法 但不执行fork exec运行外部进程 cat 最后一个解
  • 如何在 ServiceStack 中进行身份验证后重定向

    我已经像这样重写了 CredentialsAuthProvider public override bool TryAuthenticate IServiceBase authService string userName string p
  • git lfs:无法推送

    Uploading LFS objects 98 681 697 8 2 GB 2 3 MB s Uploading LFS objects 98 681 697 8 2 GB 2 3 MB s
  • 正则表达式捕获具有正向回顾的组(python)

    如何将捕获的组与积极的后视结合起来 我想匹配以下示例 DS DS x y Some DS key value Some DS test key value key2 value2 Some DS test key value key2 va
  • React Native:类型错误:未定义不是对象(评估“this.props.navigation.navigate”)

    作为反应原生的初学者 我无法找出代码中的问题 通过在互联网上阅读 我知道我可能遇到一些具有约束力的问题 因此 我的代码从 index js 开始 并在那里注册 App 组件 应用程序组件仅包含堆栈导航路线 它加载 LoginScreen 组
  • 从 R 中的列表中提取数据帧

    我正在尝试从列表 包含来自所有县的数据 中提取各个县作为数据框作为 R 中的单独数据框 我的代码如下 为了说明起见 我正在闯入步骤 1 从 URL 提取数据到列表 这部分效果很好 and 步骤 2 从列表中提取单个 data frames
  • 如何在 React/Jsx 中调用渲染器内的函数

    我想在一些嵌入的 html 中调用一个函数 我尝试了以下操作 但未调用该函数 这是在渲染方法中调用函数的错误方法吗 import React Component PropTypes from react export default cla
  • java内存泄漏,visualvm显示错误数据

    我有一个java应用程序正在运行 几个小时后它就填满了内存 我尝试使用 VisualVM 检测内存泄漏 但它显示错误的数据 不知道这是如何发生的 在屏幕截图中 您可以看到任务管理器显示内存使用量为 700Mb 而 VisualVM 显示内存
  • 如何在 Jaspersoft iReport Designer 4.7 中添加第二页

    您好 我对使用 Jaspersoft iReport Designer 完全陌生 我想要一份两页的报告 我使用的版本是4 7 0 我已经有一页包含信息 但我不知道如何添加第二页 任何帮助将不胜感激 感谢您的时间 您可以通过几种方式来完成此任
  • 定期将Access数据库复制到SQL Server

    我有一个 access 2003 数据库 其中包含我的所有业务数据 该访问数据库在白天每隔几个小时更新一次 我们目前正在编写一个网站 需要使用访问数据库中的数据 该网站 暂时 将有only只读功能 这意味着只需要一种数据传输方式 Acces
  • Linux下的MASM?

    有没有我用的方法MASM http en wikipedia org wiki Microsoft Macro Assembler在Linux下 即使严格的 NASM 在 Linux 下非常流行 它在代码上的某些指令风格仍然有所不同 维基说
  • 如何使用 SQLalchemy 和 Alembic 自动初始化数据库?

    目前 我运行 flask db init flask db migrate m initialization flask db upgrade 如果数据库不存在 我想在 Python 中运行它 例如就像是 app create db 这样我