MySQL Python从.sql模板fi创建数据库

2024-05-16 15:56:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要通过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()
    ...

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


Tags: 文件text模板数据库sqlifcreateexists