2011-08-02 32 views
26

Vì vậy, tôi mới đối với ROR và Heroku và cần một chút trợ giúp. Tôi đã tạo một ứng dụng và đã triển khai nó; tuy nhiên, tôi muốn xóa cơ sở dữ liệu liên kết với nó. Có nghĩa là tôi muốn xóa bất kỳ người dùng nào (và dữ liệu đính kèm của họ) đã được tạo cho đến nay.xóa cơ sở dữ liệu ứng dụng đường ray trên trang web sản xuất heroku

Về cơ bản tôi đã tạo một số tài khoản giả để kiểm tra xem cơ sở dữ liệu trên trang web sản xuất có hoạt động hay không, nhưng bây giờ tôi muốn xóa nó và bắt đầu với cơ sở dữ liệu mới.

Điều này có thể thực hiện mà không xóa hoàn toàn cơ sở dữ liệu không?

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn vi đa danh thơi gian cho tôi!

Trả lời

52

Bạn có thể sử dụng lệnh heroku pg:reset DATABASE để đặt lại toàn bộ cơ sở dữ liệu. Lệnh sẽ đơn giản thả và tạo cơ sở dữ liệu.

Bạn phải sử dụng heroku rake db:migrate để tạo các bảng sau đó.

Hoặc bạn có thể sử dụng lệnh rake db:reset cục bộ và sau đó chạy heroku db:push để cập nhật db sản xuất.

+5

trên ngăn tuyết tùng, bạn cũng có thể chạy bất kỳ lệnh nào trực tiếp thông qua 'heroku run', do đó: 'heroku run rake db: reset' – asymmetric

+0

Câu trả lời này đã lỗi thời cho năm 2013. Vui lòng xem câu trả lời của tôi bên dưới. – CodeBiker

+0

Lệnh heroku db: push phải là heroku pg: push – rockusbacchus

1

Có, bạn có thể sử dụng các phương thức SQL để thực hiện hoặc có thể chỉ sử dụng Rails Console để thực hiện điều đó từ dòng lệnh và gọi phương thức @ users.destroy_all. This article giải thích cách sử dụng bảng điều khiển từ Heroku.

+1

Tôi rất tò mò ... Tôi hiện đang sử dụng mac (máy chủ cục bộ) của mình. Tôi có chính xác trong giả định sau: Nếu tôi chạy rake db: reset (trên localhost/staging db) của tôi, nó sẽ xóa tất cả dữ liệu mà không xóa các bảng và lược đồ? Nếu vậy, sau đó tôi sẽ chỉ đẩy cơ sở dữ liệu đó đến heroku bằng lệnh heroku db: push? Điều đó có hiệu quả không? –

+0

Nếu bạn muốn thả hoàn toàn và tạo lại db bạn có thể làm: rake db: thả rake db: di chuyển – Turnkey

+0

cảm ơn bạn rất nhiều vì đã giúp đỡ –

2

cú pháp đúng đắn hiện nay Cedar ngăn xếp cho cơ sở dữ liệu được chia sẻ là:

heroku pg:reset SHARED_DATABASE my-database-name-1294 

(Thay thế "my-cơ sở dữ liệu-name-1294" với bất cứ thứ gì trước khi .herokuapp.com trong URL của bạn)

sau đó nó sẽ hỏi bạn điều này:

----> Resetting SHARED_DATABASE (DATABASE_URL) 

! WARNING: Potentially Destructive Action 
! This command will affect the app: my-database-name-1294 
! To proceed, type "my-database-name-1294" or re-run this command with --confirm my-database-name-1294 

Chỉ cần gõ "my-cơ sở dữ liệu-name-1294" ở đó và nó sẽ thiết lập lại tất cả mọi thứ.

2

Để thiết lập lại cơ sở dữ liệu của bạn

chạy như dưới đây

Heroku pg: reset SHARED_DATABASE --confirm APP_NAME

làm việc này rất tốt cho tôi

9

Đăng nhập vào Heroku qua thiết bị đầu cuối và sau đó chạy một trong các lệnh sau:

heroku rake db:reset 
//or:  
heroku run rake db:reset 

Cái đầu tiên là cái cũ và cái thứ hai là mới nhất.

3

Cách hiện nay là:

heroku pg:reset DATABASE_URL --confirm <APP_NAME> 
7

Các 2013 way to do this là:

Nhập heroku pg:reset DATABASE trong giao diện điều khiển của bạn và sau đó nhập vào tên ứng dụng của bạn khi được nhắc. Điều này sẽ làm giảm toàn bộ cơ sở dữ liệu - bảng, hàng, cột, tất cả dữ liệu của nó, mọi thứ.

Sau đó, nhập heroku run rake db:migrate. Điều này sẽ tạo cùng một bảng, hàng và cột, nhưng không có bất kỳ dữ liệu đối tượng nào.

1

Nếu bạn có hai máy chủ - sản xuất và dàn dựng, và bạn muốn thêm cơ sở dữ liệu từ sản xuất đến dàn dựng

heroku pg:reset DATABASE --remote staging 
heroku pgbackups:restore DATABASE URL_OF_DATABASE --remote staging 
heroku run rake db:migrate --remote staging 

URL_TO_DATABASE - một AWS hoặc dropbox url cho dump.

Điều này phù hợp với tôi!

7
heroku pg:reset DATABASE --confirm {app-name} 

heroku run rake db:migrate 

heroku run rake db:seed 
+1

Cảm ơn bạn điều này rất hữu ích cho tôi để thiết lập lại DB và tạo lại dễ dàng. –

Các vấn đề liên quan