部署Node.js网站到Heroku时,需重新创建MySQL表吗?
关于Heroku ClearDB复用本地MySQL数据表的问题解答
是否需要重新创建数据表?
是的,Heroku上的ClearDB是独立的远程数据库实例,和你本地开发用的MySQL数据库完全分离,默认不会自动同步本地的表结构和数据。你必须在ClearDB中创建对应的数据表结构,否则部署后的应用会因找不到表而报错。
如何复用本地的数据表?
有几种实用方法可以快速同步本地表结构和数据到ClearDB:
导出本地SQL脚本并导入ClearDB
- 在本地用MySQL命令行或可视化工具(如Navicat、phpMyAdmin)导出数据表结构和数据:
mysqldump -u [本地用户名] -p [本地数据库名] > database_dump.sql - 从Heroku控制台的ClearDB插件页面获取数据库连接信息,格式为
mysql://user:password@host/database_name - 通过命令行连接ClearDB并导入脚本:
输入密码后等待导入完成即可。mysql -h [host] -u [user] -p [database_name] < database_dump.sql
- 在本地用MySQL命令行或可视化工具(如Navicat、phpMyAdmin)导出数据表结构和数据:
使用数据库迁移工具
如果你的项目已使用迁移工具(如Sequelize、Knex.js),直接在Heroku上运行迁移命令即可自动创建表结构:heroku run npx sequelize-cli db:migrate这种方式更适合后续迭代时更新表结构,维护性更强。
手动创建表结构
若数据表数量不多,可通过ClearDB管理界面或第三方数据库工具连接ClearDB,手动执行CREATE TABLE语句创建表结构。
内容的提问来源于stack exchange,提问作者Andrey Lara
相关产品推荐
相关产品推荐

