---
# System prepended metadata

title: 'PG::DuplicateTable: ERROR:  relation "comments" already exists'
tags: [專案]

---

###### tags: `專案`
# PG::DuplicateTable: ERROR:  relation "comments" already exists
![](https://i.imgur.com/LumCkED.png)

原因:
我在A版控的情況下建立了一個 Comment 的 model 在  PG 了，但現在我在 B 分支又想建同一個名稱的model ，所以 PG 產生衝突

## 解決過程
原先使用 `rails db:drop`
但是資料庫不同意刪除
![](https://i.imgur.com/PoGHjlg.png)

原因: 我想刪掉的 model 已經跟其他 model 建立關聯了

**解決方式: 切斷關聯** 
[Rails has_one / has_many, dependent option: What values are available?](https://stackoverflow.com/questions/25962326/rails-has-one-has-many-dependent-option-what-values-are-available)
![](https://i.imgur.com/8gV5WZK.png)

將兩個有關聯的 model 切斷關聯(user.rb, comment.rb)

![](https://i.imgur.com/oFsUihw.png)

![](https://i.imgur.com/rQYuNPL.png)

再執行一次 `rails db:drop` ，刪除全部 db

下一步 `rails db:create`，建立 db

最後將全部 model 具現化 `rails db:migrate`