Tôi hiện đang tìm cách tự động hóa quy trình xây dựng phần mềm bao gồm lược đồ cơ sở dữ liệu được định nghĩa trong MySQL Workbench.Xây dựng Tự động hóa & Bàn làm việc MySQL Scripting: Forward Engineer SQL CREATE SCRIPT
Sử dụng khả năng tạo tập lệnh của Bàn làm việc, tôi muốn mở tài liệu Workbench và xuất lược đồ của nó dưới dạng tập lệnh SQL CREATE.
Điều tôi muốn biết là có chức năng xuất toàn bộ lược đồ trong một bước dưới dạng Tệp của Workbench | Xuất | Kỹ sư chuyển tiếp SQL CREATE Script, tự động xử lý bất kỳ sự phụ thuộc nào giữa các bảng.
Tôi đã tìm thấy một số ứng cử viên trong module DbMySQL
rằng có thể làm điều đó (generateSQL(GrtNamedObject, dict, string)
và makeSQLExportScript(GrtNamedObject, dict, dict, dict)
), tuy nhiên tôi đang bối rối về các thông số họ mong đợi – người đầu tiên có thể là đối tượng schema, nhưng những gì là các đối số khác?
Bất cứ ai có thể cho tôi biết nếu giả định của tôi là chính xác và/hoặc cung cấp cho tôi các ví dụ sử dụng?
Cho đến nay, tôi đã tìm ra một giải pháp thủ công (lưu ý rằng đây hiện không sắp xếp bảng theo quan hệ FK của họ):
local o = assert(io.open("/tmp/create.sql", "wb"));
foreach_table_all(function (t)
o:write(DbMySQL:makeCreateScriptForObject(t) .. ";\n\n")
end)
o:close()
Câu hỏi đặt ra có liên quan đến How to generate SQL Script from MySQL Workbench using Command Line?, tuy nhiên câu trả lời tìm thấy có thực sự trừu tượng và không nói gì về thực sự bằng cách sử dụng các tính năng kịch bản của MySQL Workbench.
Bất kỳ gợi ý nào về tùy chọn nào để sử dụng để loại trừ các bảng nhất định khỏi quá trình xuất, vì có thể trong GUI? – sebastian
Xem câu hỏi của tôi. Nó sử dụng 'foreach_table_all()', và hàm gọi lại có thể kiểm tra bảng và chỉ quyết định không viết nó. Đơn giản như thế. – Archimedix
Bất kỳ cách nào để bỏ định danh lược đồ trong cách tiếp cận này? – sebastian