首页 > 解决方案 > MySQL Python - 从 .sql 模板文件创建数据库

问题描述

我需要通过 API 生成很多临时数据库。我有一个关于每个数据库外观的模板:

模板.sql

...
CREATE SCHEMA IF NOT EXISTS `P0XXXX` ;
USE `P0XXXX` ;
-- -----------------------------------------------------
-- Table `P0XXXX`.`Customer_Requirement`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `P0XXXX`.`Customer_Requirement` (
  `ID` CHAR(32) NOT NULL,
  `Date` DATETIME NOT NULL,
  `ModulePath` TEXT NULL,
  `AbsoluteNumber` TEXT NULL,
  `ObjectURL` TEXT NULL,
  `lk_contentType` VARCHAR(255) NULL,
  `lk_responsible` VARCHAR(255) NULL,
  `lk_requirementStatus` VARCHAR(255) NULL,
  `LK_CommentInt` TEXT NULL,
  `LK_CommentExt` TEXT NULL,
  `lk_Function` VARCHAR(1000) NULL,
  `lk_Release` TEXT NULL,
  `lk_VerificationStatus` TEXT NULL,
  `lk_realisationStatus` TEXT NULL,
  `lk_FunctionalSafety` TEXT NULL,
  ...

我没有包含整个文件,但我希望你能明白。所以使用这个想法,我想知道是否可以用自定义项目名称(例如 P00000)替换“P0XXXX”。我将通过 Python 创建它:

def generate_temp_database(self, project_id):
    """
    Generates a new database from the standard template 
    """

    cursor = self.cnx.cursor()
    cursor.execute(TEMPLATE.sql) # However, I need to replace the default value of PXXXXX
                                 # I tried .format("P00000") and using params, but won't work in this case
    cursor.close()
    ...

有没有办法用函数中作为参数传递的项目 id 动态替换每个“PXXXXX”值(因此它将创建具有相同结构但名称不同的不同数据库)。我也有 `.mwb' 文件(模型文件),但我不确定如何与它们交互,或者它们是否适合解决这个问题。谢谢你。

标签: pythonmysqlsqldatabase

解决方案


推荐阅读