Asked Dec 26th, 2018 1:58 a.m. 332 0 3
  • 332 0 3
+1

Update Database khi trang web đang chạy ở host

Share
  • 332 0 3

Xin chào mọi người, hôm nay em muốn hỏi một câu hỏi mà em đã suy nghĩ 2 ngày rồi ạ. Vẫn chưa có câu trả lời và chưa có hướng đi ạ.

Em đang xây dựng một website, đã public lên host nhưng bây giờ, khách hàng yêu cầu bổ sung thêm thông tin (columns) cho 1 số bảng và liên kết với nhau...

Như vậy thì làm thế nào để có thể UPDATE DB trog trường hợp này để không ảnh hưởng gì đến DATA ạ?

Em xin cám ơn.

Dec 26th, 2018 2:02 a.m.

theo ngu ý của mình thì cứ backup lại rồi làm thôi có gì đâu nhỉ, việc sửa database trong quá trình làm website là bình thường mà 🤔

+1
| Reply
Share
Avatar Nguyễn Minh Tuấn @minhtuancnttk39
Dec 26th, 2018 2:04 a.m.

@vuongthai95 Cách đó em đã nghĩ đến ạ, nhưng chưa khả thi nhất vì lý do như sau ạ:

  • Trang web của em liên quan đến VIEW người dùng, nên nếu như trong khi em edit DB ở local nhưng có thay đổi ở views của bảng nào đó.. thì e sẽ không nhận biết được và ảnh hưởng đến ranking của bài viết cũng như video nào đó... Đó là vấn đề em đang gặp phải ạ
0
| Reply
Share
Dec 26th, 2018 2:16 a.m.

@minhtuancnttk39 hóa ra là thế

+1
| Reply
Share
Avatar Phan Đức Bảo @ducbao.phan
Dec 26th, 2018 2:35 a.m.

Không biết bạn đang sử dụng ngôn ngữ hay framework gì? Trước mình có làm laravel thì mình sử dụng cách này:
B1: Tạo CSDL mới với các bảng và quan hệ mới theo yêu cầu.
B2: Viết các API để lấy dữ liệu từ các bảng trên cơ sở dữ liệu cũ
B3: Viết các command để đồng bộ dữ liệu cũ vào các bảng tương ứng trên dữ liệu mới (Lưu ý là bước này phải map dữ liệu giữa hai CSDL với nhau, vì thường primary key là ID nhưng lại được sinh tự động, có thể bị mất một số bản ghi khi bị xóa, bạn có thể sử dụng một trường unique khác trong bảng để làm căn cứ) => không ảnh hưởng đến rank....
Tất nhiên là làm trên local rồi, bao giờ ngon nghẻ rồi thì update lên server thôi.
Chúc bạn thành công! 😅😅

+2
| Reply
Share
Avatar Nguyễn Minh Tuấn @minhtuancnttk39
Dec 26th, 2018 2:51 a.m.

@ducbao.phan Cách của bạn thật sự rất hay..

Cám ơn bạn vì điều đó nhé... Mình sẽ thử sức xem thế nào?

0
| Reply
Share

3 ANSWERS


Answered Dec 26th, 2018 2:56 a.m.
+4

Chỉnh sửa lại cấu trúc DB trong Laravel thì cứ migration mà táng thôi bạn. Bạn dùng git chứ? Sử dụng git rồi checkout code hiện tại ở master ra một branch khác, bạn sửa code trên branch đấy sao cho web hoạt động bình thường, không bị lỗi. Dữ liệu cũ vẫn được đảm bảo tồn tại và tương thích trên cấu trúc mới. Sau tất cả, chỉ cần merge branch này về master và thực hiện deploy thôi.

Còn nếu web nhỏ, chỉ deploy trên hosting thì ở bước deploy, bạn phải làm sửa cấu trúc thủ công thôi. Chuyển web về chế độ maintain mode, download cái database đó về, sau đó migrate ở local. Xong đâu đấy thì upload code mới lên, import database mới và tắt chế độ maintain mode.

Share
Avatar Nguyễn Minh Tuấn @minhtuancnttk39
Dec 26th, 2018 3:28 a.m.

Ồ... cám ơn a Kim

Anh có thể cho e xin link cách sử dụng Git cho migration in laravel được không ạ...

0
| Reply
Share
Dec 26th, 2018 3:32 a.m.

@minhtuancnttk39 Cách dùng migration thì có trong doc laravel bạn có thể tham khảo.

Nếu bạn có thể SSH lên host để thực hiện command line migrate lúc deploy thì ngon lành cành đào. Còn không thì bước deploy phải làm thủ công như mình mới bổ sung trong answer:

Còn nếu web nhỏ, chỉ deploy trên host thì bạn ở bước deploy, bạn phải làm sửa cấu trúc thủ công thôi. Chuyển web về chế độ maintain mode, download cái database đó về, sau đó migrate ở local. Xong đâu đấy thì upload code mới lên, import database mới và tắt chế độ maintain mode.

+2
| Reply
Share
Dec 26th, 2018 3:34 a.m.

@minhtuancnttk39 Còn về Git, nếu chưa biết gì bạn có thể tham khảo bí kíp của mình: https://viblo.asia/p/so-tay-git-co-ban-can-phai-biet-khi-di-lam-WAyK8M0nZxX

+1
| Reply
Share
Answered Dec 28th, 2018 10:27 a.m.
0

Làm được chưa bạn ơi? Dùng migration là được thôi mà, không ảnh hưởng gì đến data cả, mình vẫn làm suốt.

Share
Dec 29th, 2018 1:59 a.m.

Website chạy trên hosting thì thường nhà cung cấp sẽ không cho mình quyền SSH hay thực hiện command line chạy được các lệnh artisan của laravel. Chắc là chủ thớt biết là dùng migration nhưng tới đây chưa biết hướng giải quyết ra sao để migrate database được đó bạn.

0
| Reply
Share
Answered Feb 9th, 2019 12:19 p.m.
0

Thông thường host luôn lưu dữ liệu database website 1 tuần 1 lần. Nên bạn có thể đổi được mà không sợ mất dữ liệu. Dữ liệu trên host luôn được backup. Lúc trươc trang web http://minhgiahuy.com/san-xuat-ao/co-so-may-ao-thun-ca-sau/ của mình cũng bị lỗi và update lại bình thường

Share
Viblo
Let's register a Viblo Account to get more interesting posts.