我正在尝试环回并注意到在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
源,但服务器抱怨因为表不存在。
答案 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
;