You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Phoenix创建REST API执行mix ecto.migrate时数据库连接失败

解决Phoenix框架执行mix ecto.migrate时数据库不存在的错误

嘿,这个问题我之前搭建Phoenix项目时也踩过坑!报错提示database "api_example_dev" does not exist,本质是Phoenix的迁移命令需要依赖已存在的数据库,而你的PostgreSQL里还没创建这个开发库。下面给你两种实用的解决方式:

方式一:用Phoenix自带命令一键创建数据库

Phoenix提供了专门的数据库创建命令,完全不用手动操作PostgreSQL命令行,直接在项目根目录执行:

mix ecto.create

这个命令会自动读取你config/dev.exs里的数据库配置,帮你创建对应的开发数据库(如果是测试环境,就加参数mix ecto.create --env test)。创建完成后再跑迁移:

mix ecto.migrate

基本就能顺利执行了。

方式二:手动进入PostgreSQL创建数据库

如果你想手动操作确认细节,也可以按以下步骤来:

  1. 打开终端,进入PostgreSQL命令行(默认用户是postgres的话):
psql -U postgres

如果你的Phoenix配置里用了其他用户名,把postgres换成对应的用户名即可。
2. 在psql交互环境里执行创建数据库的SQL命令:

CREATE DATABASE api_example_dev;
  1. 退出psql环境:
\q
  1. 回到项目根目录重新执行迁移命令:
mix ecto.migrate

额外注意点

  • 先检查config/dev.exs里的数据库配置段,确保database: "api_example_dev"是你要创建的库名,别配置错了。
  • 如果执行mix ecto.create时提示权限错误,大概率是你的PostgreSQL用户密码和配置里的不匹配,或者该用户没有创建数据库的权限,这时候要调整config/dev.exs里的username和password,或者给PostgreSQL用户赋对应权限。

内容的提问来源于stack exchange,提问作者Rafael Augusto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:09:51