带有mysql数据库的环回默认模型

时间:2015-07-15 20:07:48

标签: express loopbackjs strongloop

我正在尝试环回并注意到在model-config文件中它引用了5个将dataSource设置为内存数据库db的模型:

  "User": {
    "dataSource": "db"
  },
  "AccessToken": {
    "dataSource": "db",
    "public": false
  },
  "ACL": {
    "dataSource": "db",
    "public": false
  },
  "RoleMapping": {
    "dataSource": "db",
    "public": false
  },
  "Role": {
    "dataSource": "db",
    "public": false
  }

是否需要将用户,acl等保留在内存中?如果没有,我如何将这些模型移植到mysql?我尝试将dataSource切换到我的mysql源,但服务器抱怨因为表不存在。

3 个答案:

答案 0 :(得分:6)

将以下代码复制粘贴到server / server.js中。 (最好到最后)

-N

不要忘记将模型的数据源更改为model-config.json中的新数据源。在代码中将mysqlDS替换为您的数据源。

干杯!

参考: https://loopback.io/doc/en/lb3/Creating-database-tables-for-built-in-models.html

答案 1 :(得分:0)

您需要进行迁移。查看auto-migrate的文档,但最简单的解决方案(无编码)是使用strongloop arc

要对其进行编码,您可以将自动迁移拖放到启动脚本中,例如构建表格的dataSource.automigrate();,但这也会删除您拥有的任何现有数据。

答案 2 :(得分:-1)

Add these table in MySql Database:-

    CREATE TABLE `AccessToken` (
    `id` VARCHAR(255) NOT NULL,
    `ttl` INT(11) NULL DEFAULT NULL,
    `scopes` TEXT NULL,
    `created` DATETIME NULL DEFAULT NULL,
    `userId` INT(11) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
CREATE TABLE `ACL` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `model` VARCHAR(512) NULL DEFAULT NULL,
    `property` VARCHAR(512) NULL DEFAULT NULL,
    `accessType` VARCHAR(512) NULL DEFAULT NULL,
    `permission` VARCHAR(512) NULL DEFAULT NULL,
    `principalType` VARCHAR(512) NULL DEFAULT NULL,
    `principalId` VARCHAR(512) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
CREATE TABLE `Role` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(512) NOT NULL,
    `description` VARCHAR(512) NULL DEFAULT NULL,
    `created` DATETIME NULL DEFAULT NULL,
    `modified` DATETIME NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
CREATE TABLE `RoleMapping` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `principalType` VARCHAR(512) NULL DEFAULT NULL,
    `principalId` VARCHAR(255) NULL DEFAULT NULL,
    `roleId` INT(11) NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    INDEX `principalId` (`principalId`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
CREATE TABLE `User` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `realm` VARCHAR(512) NULL DEFAULT NULL,
    `username` VARCHAR(512) NULL DEFAULT NULL,
    `password` VARCHAR(512) NOT NULL,
    `email` VARCHAR(512) NOT NULL,
    `emailVerified` TINYINT(1) NULL DEFAULT NULL,
    `verificationToken` VARCHAR(512) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;