对使用dokku感到困惑

时间:2020-09-15 14:34:09

标签: mysql node.js dokku

这是我第一次使用dokku部署服务器。 我有一个使用MySQL作为数据库的服务器上使用Nodejs的辅助项目,我想用dokku部署它,我去了文档,一切都很酷,但是如果你们可以,我不明白两件事,请回答我:)< / p>

Q-1-第一次部署服务器时,我想拥有一个包含数据的exisitng数据库,这导致即时通讯打算更改我当前的托管服务提供商,并且我已经在数据库中有了数据,

Q-1-在当前的生产服务器中,我建立了一个导出数据库并将其上传到cloudinary的功能,我使用了简单的mysqldump命令,,但是现在我打算使用dokku你们如何认为我可以做到,如果您想看看,这就是功能


function backupDB() {
  try {

    var stream = cloudinary.uploader.upload_stream(
      {
        folder: "db_backup",
        resource_type: "raw",
        use_filename: true,
        format: "sql",
        timestamp: Date.now(),
      },
      function (error, result) {
        if (error) logger.error(`upload to cloudinary error: ${error}`);
      }
    );

    // this just the mysqldump params, dont bother reading it
    let mysqlDumpData = [
      "-h",
      `${
        process.env.NODE_ENV == "production"
          ? process.env.MYSQL_HOST
          : "localhost"
      }`,
      "-u",
      `${
        process.env.NODE_ENV == "production" ? process.env.MYSQL_USER : "root"
      }`,
    ];

    if (process.env.NODE_ENV == "production") {
      mysqlDumpData.push(
        `-p${
          process.env.NODE_ENV == "production" ? process.env.MYSQL_PASSWORD : ""
        }`
      );
      mysqlDumpData.push(
        `${
          process.env.NODE_ENV == "production" ? process.env.MYSQL_DB : "DBNAME"
        }`
      );
    } else {
      mysqlDumpData.push(
        `${
          process.env.NODE_ENV == "production" ? process.env.MYSQL_DB : "DBNAME"
        }`
      );
    }

   //  console.log(mysqlDumpData);
    var mysqldump = spawn("mysqldump", mysqlDumpData);

    logger.info("Running Database Backup...");
    mysqldump.stdout
      .pipe(stream)
      .on("finish", function () {
        logger.info(`Database is backed up successfully !`);
      })
      .on("error", function (err) {
        console.log(err);
      });
  } catch (err) {
    logger.error(`DB BACKUP ERROR: ${err}`);
  }
}

0 个答案:

没有答案