Plugin này tích hợp vào môi trường phát triển Intellij IDEA, WebStorm hoặc PyCharm và cho phép bạn làm việc với các bài tập của khoá CodeGym ngay trong IDE. Ví dụ, bạn có thể viết code giải bài, gửi đi kiểm tra, so sánh với "mặc định" và nhiều thứ khác nữa. Tiến trình giải bài trong plugin sẽ được đồng bộ với tài khoản CodeGym của bạn, nên nó sẽ giống nhau cả trên web lẫn trong IDE.
Bạn có thể tải plugin CodeGym từ marketplace của Jetbrains, ngay trong IDE của mình. Tiếp theo, mình sẽ demo các bước trên WebStorm, nhưng các bước này cũng áp dụng cho các IDE khác luôn nha.
Để dùng plugin này, bạn cần IDE Jetbrains phiên bản 2023.1 trở lên.
Vào phần "Cài đặt", Windows/Linux
File - Settings, MacOSWebStorm - Preferences. Nếu không thấy phần cài đặt, hãy mở một project bất kỳ hoặc tạo mới.Trong cửa sổ hiện ra, ở menu bên trái chọn mục Plugins rồi mở tab Marketplace. Ở ô tìm kiếm gõ codegym
![]()
- Chọn plugin và nhấn nút Install.
- Khởi động lại (Restart IDE) WebStorm để bắt đầu dùng plugin.
Chạy lại init.sql hoặc giải quyết vấn đề phụ thuộc
Khi làm việc với các tác vụ, bạn sẽ thường xuyên chạy script init.sql để chuẩn bị cơ sở dữ liệu cục bộ của mình. Nhưng điều gì sẽ xảy ra nếu bạn chạy nó lần thứ hai, khi bảng đã được tạo?
Có vẻ như lệnh DROP TABLE IF EXISTS employees;, thường được tìm thấy trong các script như vậy, sẽ giải quyết được vấn đề này bằng cách xóa bảng cũ trước khi tạo một bảng mới. Tuy nhiên, không phải lúc nào cũng vậy. Bạn có thể gặp lỗi không cho phép xóa bảng. Điều này xảy ra nếu các đối tượng cơ sở dữ liệu khác tham chiếu đến bảng của bạn, ví dụ như Khóa ngoại (Foreign Keys) từ các bảng khác hoặc các chuỗi (sequences) được sử dụng cho các trường tự động tăng. Hệ thống bảo vệ các mối quan hệ này, không cho phép xóa bảng "cha".
Tùy chọn CASCADE
Đối với những trường hợp như vậy, PostgreSQL có một phần mở rộng cho lệnh DROP — tùy chọn CASCADE. Nó yêu cầu máy chủ: "Xóa bảng này và tự động xóa tất cả các đối tượng phụ thuộc vào nó". Điều này cho phép "bắt buộc" dọn dẹp mọi thứ liên quan đến bảng đang bị xóa.
Ví dụ về mã
-- Phiên bản này có thể gây ra lỗi nếu có tham chiếu đến bảng employees
DROP TABLE IF EXISTS employees;
-- PHIÊN BẢN dành cho các script học tập
-- Sẽ xóa bảng employees và tất cả các đối tượng phụ thuộc của nó (khóa, chuỗi).
-- IF EXISTS ngăn ngừa lỗi nếu bảng chưa tồn tại.
DROP TABLE IF EXISTS employees CASCADE;
-- Sau đó, bạn có thể tạo lại bảng một cách an toàn
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... các cột khác
);
Quan trọng! Đối với mục đích học tập và trong phát triển cục bộ, nơi bạn cần thường xuyên tạo lại cấu trúc CSDL, CASCADE là người trợ giúp tốt nhất của bạn. Tuy nhiên, trong các cơ sở dữ liệu sản xuất thực tế, lệnh này nên được sử dụng hết sức thận trọng, vì nó có thể dẫn đến việc vô tình xóa dữ liệu và các đối tượng liên quan quan trọng.
Plugin đã được cài đặt!
Đăng nhập tài khoản và tải bài tập
- Bạn sẽ thấy giao diện hơi khác một chút và có nút Đăng nhập tài khoản ở thanh ngang trên cùng.
Khi nhấn vào sẽ mở cửa sổ đăng nhập tài khoản, bạn cần nhập secret key của mình:
Lưu ý, bạn có thể tìm secret key trong phần Cài đặt → Bảo mật và đăng nhập.
Để mở bài tập mới, nhấn vào
Tasksở thanh dọc bên trái, sau đó chọn thẻ bài tập ở panel bên trái và nhấn Mở:
- Khi bạn mở bài tập mới, sẽ hiện ra workspace với vài file quan trọng:
Solution— đây là file làm việc chính của bạn. Bạn sẽ viết SQL query giải bài vào đây.init.sql— đây là script phụ để chuẩn bị database local của bạn. Nó chứa hướng dẫn tạo bảng cần thiết và thêm dữ liệu vào.- Tab với đề bài.
- Với file
Solution, mọi thứ giống như trên web. Viết giải pháp rồi nhấn nútKiểm tra/Validate
Chạy giải pháp local
- Đầu tiên cần tạo bảng và dữ liệu cho bài tập trong database local của bạn. Để làm điều này, mở file
init.sql, nhấn chuột phải và chọnRun 'init.sql'.
- Trong cửa sổ "Edit Configuration" hiện ra, bạn cần chỉ định script sẽ chạy ở đâu. Ở phần "Target data source / schema" nhấn
+và chọn kết nối đã cấu hình, rồi chọn schema cần thiết (ví dụ,university). Sau khi chọn xong nhấn Run.
- Sau khi chạy thành công, sẽ có thông báo ở console phía dưới. Để xem bảng vừa tạo, hãy làm mới view database ở panel "Database" (nút hai mũi tên). Bạn sẽ thấy bảng mới (ví dụ,
products) trong schema của mình.
- Bây giờ database đã sẵn sàng, quay lại file
solution.sql. Viết SQL query của bạn. Để test local, chọn schema của bạn ở menu thả xuống trên editor rồi nhấn nút xanh "Run". Query của bạn sẽ chạy trên database local và bạn sẽ thấy kết quả.![]()
Đồng bộ bài tập giữa web và plugin
Danh sách bài tập và trạng thái sẽ tự động cập nhật, mỗi 5 phút hoặc sau khi gửi bất kỳ bài nào lên kiểm tra (server CodeGym).
Vì vậy nếu bạn giải bài trên web, trong plugin nó cũng sẽ nằm trong danh sách đã giải. Nếu muốn cập nhật trạng thái bài tập ngay lập tức, hãy nhấn vào avatar của bạn (góc phải trên), và trong menu thả xuống chọn Đồng bộ bài tập:
Chế độ newbie trong plugin
Đây là phiên bản đơn giản cho những bạn chưa quen (hoặc ít kinh nghiệm) với WebStorm và các IDE khác. Một số chức năng của WebStorm sẽ bị ẩn đi. Để tắt chế độ này, nhấn vào avatar của bạn (góc phải trên), và trong menu thả xuống chọn mục Cài đặt:
Cách ẩn thanh điều hướng plugin ở chế độ PRO
Nhấn vào mục Cài đặt (⚙️) và bỏ tick ở mục "Hiển thị thanh điều hướng plugin":



GO TO FULL VERSION