Yêu cầu thg 12 26, 2018 1:58 SA 477 0 3
  • 477 0 3
+1

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

Chia sẻ
  • 477 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.

thg 12 26, 2018 2:02 SA

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à 🤔

Avatar Jimmy Nguyen @minhtuancnttk39
thg 12 26, 2018 2:04 SA

@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 ạ
thg 12 26, 2018 2:16 SA

@minhtuancnttk39 hóa ra là thế

Avatar Phan Đức Bảo @ducbao.phan
thg 12 26, 2018 2:35 SA

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! 😅😅

Avatar Jimmy Nguyen @minhtuancnttk39
thg 12 26, 2018 2:51 SA

@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?

3 CÂU TRẢ LỜI


Đã trả lời thg 12 26, 2018 2:56 SA
+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.

Chia sẻ
Avatar Jimmy Nguyen @minhtuancnttk39
thg 12 26, 2018 3:28 SA

Ồ... 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 ạ...

thg 12 26, 2018 3:32 SA

@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.

thg 12 26, 2018 3:34 SA

@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

Đã trả lời thg 12 28, 2018 10:27 SA
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.

Chia sẻ
thg 12 29, 2018 1:59 SA

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.

Đã trả lời thg 2 9, 2019 12:19 CH
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

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí