如何使用 Gramex FormHandler 动态(在运行时)创建或更改数据库模式

桑迪普

我希望能够(在运行时)使用 Gramex 的 FormHandler 微服务在特定事件(例如单击按钮)上动态创建或更改数据库模式。

S阿南德

FormHandler 支持在规范中定义列

例如,此配置创建一个名为profile4 列的表:用户、密码、年龄和 id。

url:
    handler: FormHandler
    kwargs:
      url: 'postgresql://$USER:$PASS@server/db'       # Pick any database
      table: profile              # Pick any table name to create
      id: id                      # The "id" column is primary key
      # Define your table's columns
      columns:
        user: TEXT                # Use any SQL type allowed by DB
        password: VARCHAR(40)     # including customizations
        age:
          type: INTEGER           # You can also specify as a dict
          nullable: true          # Allows NULL values for this field
          default: 0              # that default to zero
        id:
          type: INTEGER           # Define an integer ID column
          primary_key: true       # as a primary key
          autoincrement: true     # that auto-increments

但是如果这需要在运行时改变,例如当用户点击一个按钮时,你可以使用FunctionHandlergramex.data.alter()

例如,将此添加到您的gramex.yaml

url:
  alter:
    pattern: /alter
    handler: FunctionHandler
    kwargs:
      # You can decide the columns dynamically here
      function: >
        gramex.data.alter(url, table, columns={
           col: 'TEXT' for col in handler.args.get('col', [])
        })

调用时/alter?col=email,该函数会添加一email列作为文本。

注意:没有删除列的选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用通用存储库和IoC在运行时更改数据库

使用 MVC WebApi 2 在运行时更改数据库

使用Hibernate在运行时创建数据库?

如何在 .NET 程序中提取 DBMS 请求,同时能够在运行时更改数据库

在新的 Ubuntu 16.04 安装上运行 Gramex

如何使用Entity Framework 6在运行时创建数据库和表?

如何在运行时动态查询会议室数据库?

Hibernate-如何在运行时反映数据库中的更改?

如何在运行时更改 PrismaClient 数据库连接?

如何在运行时创建数据库表

HTML :: FormHandler动态字段添加到客户端

如何在运行时使用模型切换SQL数据库

如何在运行时使用Open Liberty切换数据库?

如何在运行时提供数据库名称并将所有更改迁移到它

使用JndiObjectFactoryBean在运行时设置动态模式

如何使用boost :: multiprecision在运行时更改数字精度

Spring Boot:如何使用多种模式并动态选择在运行时使用哪种模式

如何在使用Codeigniter创建表的运行时选择数据库?

如何在运行时初始化Peewee SQLite数据库?

如何在运行时动态更改依赖项

配置Hibernate使用数据库,其名称在运行时之前未知

我可以通过在运行时指定数据库来使用JPA吗?

如何在运行时动态创建Predicate <T>

在运行时使用动态名称创建Qlabel

如何在运行时更改库声明?

如何在主dataSource中添加额外的url(到重复的备用数据库的url)以在运行时动态切换?

使用标准库在运行时创建ND阵列

在给定的数据库结构可以在运行时更改的情况下,如何处理并发的SQL更新

jhipster:在PROD模式下运行时,如何避免数据库更新?