Загрузка видео...

Не удалось загрузить видео

На главную

The @springdata JDBC framework does not support schema generation yet: But there is a workaround! Use IntelliJ IDEA to generate schema init scripts for Liquibase and @flywaydb.

14,451 просмотров • 4 месяцев назад •via X (Twitter)

Комментарии: 0

Нет доступных комментариев

Здесь появятся комментарии из оригинального поста

Похожие видео

Big moment for Postgres! AI coding tools have been surprisingly bad at writing Postgres code. Not because the models are dumb, but because of how they learned SQL in the first place. LLMs are trained on the internet, which is full of outdated Stack Overflow answers and quick-fix tutorials. So when you ask an AI to generate a schema, it gives you something that technically runs but misses decades of Postgres evolution, like: - No GENERATED ALWAYS AS IDENTITY (added in PG10) - No expression or partial indexes - No NULLS NOT DISTINCT (PG15) - Missing CHECK constraints and proper foreign keys - Generic naming that tells you nothing But this is actually a solvable problem. You can teach AI tools to write better Postgres by giving them access to the right documentation at inference time. This exact solution is actually implemented in the newly released pg-aiguide by Tiger Data - Creators of TimescaleDB, which is an open-source MCP server that provides coding tools access to 35 years of Postgres expertise. In a gist, the MCP server enables: - Semantic search over the official PostgreSQL manual (version-aware, so it knows PG14 vs PG17 differences) - Curated skills with opinionated best practices for schema design, indexing, and constraints. I ran an experiment with Claude Code to see how well this works, and worked with the team to put this together. Prompt: "Generate a schema for an e-commerce site twice, one with the MCP server disabled, one with it enabled. Finally, run an assessment to compare the generated schemas." The run with the MCP server led to: - 420% more indexes (including partial and expression indexes) - 235% more constraints - 60% more tables (proper normalization) - 11 automation functions and triggers - Modern PG17 patterns throughout The MCP-assisted schema had proper data integrity, performance optimizations baked in, and followed naming conventions that actually make sense in production. pg-aiguide works with Claude Code, Cursor, VS Code, and any MCP-compatible tool. It's free and fully open source. I have shared the repo in the replies!

Avi Chawla

186,931 просмотров • 6 месяцев назад

Goodnight, 𝕏..·˚ ༘ ☾ ⋆。˚ ☄︎ Here's a fun project you can start with Grok 4. Use Grok-Code-Fast-1 to build your own OS. Below is a prompt that you can give to Grok-Code, and it will set up a solid foundation for a Linux-based Operating system that you can build from the ground up with Grok4. >>> Grok 4 Prompt You are a fully capable AI developer agent with expert-level experience as an embedded Linux systems engineer. You have deep expertise in using automated build systems like Buildroot and Yocto to create custom operating systems from source. You have access to a sandboxed Linux shell environment that allows you to write, execute, and debug code. Your mission is to generate a complete project skeleton for a minimal, custom Linux OS, and then you will execute the build scripts yourself to verify their correctness, automatically fixing any issues that arise. This is NOT a request to follow the Linux From Scratch (LFS) book. You will use the Buildroot build system to automate the entire process. You will follow a two-phase process: Phase 1: Generation and Phase 2: Execution and Iterative Debugging. ------------------------------------------------------------- Phase 1: Code and Script Generation First, you will generate all the necessary files for the project skeleton. All generated shell scripts must be robust and path-aware, executing correctly from any directory [Previous conversation]. Detailed Implementation Steps (using Context-Aware Decomposition): 1. Generate the Project Directory Structure via setup. sh Create a setup. sh script that establishes the following directory structure: • buildroot/ - Where the Buildroot source code will be cloned. • configs/ - To store our custom Buildroot configuration (defconfig). • board/ - For custom board support, including a readme.txt explaining its purpose for filesystem overlays. • output/ - Where all build artifacts will be placed. • scripts/ - A home for our build. sh and test. sh scripts. Crucially, this setup. sh script (and all others) must begin with a preamble to define the project's root directory, making all subsequent paths absolute and robust: #!/bin/bash # Preamble to ensure path robustness and stop on error set -e PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE}")" && pwd)" The script must then clone the latest stable branch of Buildroot into $ PROJECT_ROOT/buildroot/. 2. Create the Minimal and Correct Buildroot defconfig Create a file named configs/tiny_linux_defconfig. This configuration must be the absolute bare minimum required to boot to a shell and must contain the exact configuration options listed below to avoid ambiguity and known errors: • Target Architecture: x86_64. • Toolchain: Use the default Buildroot toolchain. • Init System: Use BusyBox init. • System Utilities (BusyBox): ◦ To ensure BusyBox is statically linked without errors, you must include the following line directly in the defconfig file: BR2_PACKAGE_BUSYBOX_STATIC_LINK=y [Previous conversation, 298, 753]. ◦ To prevent the ROJECT_ROOT error, explicitly do NOT use a configuration fragment for BusyBox. Do not generate any lines containing BR2_BUSYBOX_CONFIG_FRAGMENT_FILES [Previous conversation]. • Kernel: ◦ Build the latest stable Linux kernel. ◦ Use tinyconfig as a base. ◦ Ensure the following options are explicitly enabled (=y) to make it bootable in QEMU: CONFIG_64BIT=y, CONFIG_DEVTMPFS=y, CONFIG_DEVTMPFS_MOUNT=y, CONFIG_BINFMT_ELF=y, CONFIG_BLK_DEV_INITRD=y (for initramfs support), CONFIG_TTY=y, CONFIG_PRINTK=y, CONFIG_DRM_FBDEV_EMULATION=y (for UEFI framebuffer console). • Filesystem Image: Configure it to produce a compressed cpio initial ramdisk (initramfs) image. • Bootloader: Do not include GRUB or other bootloaders. We will boot the kernel directly with QEMU. 3. Generate the scripts/build.sh and scripts/test.sh Scripts Generate path-aware build and test scripts, placing them in the scripts/ directory. • scripts/build.sh: This script must use absolute paths derived from a preamble. It must use make -C "$PROJECT_ROOT/buildroot" O="$PROJECT_ROOT/output" ... for a clean, out-of-tree build. It must include the -j$(nproc) flag to maximize build speed on multi-core systems [111, 967, Previous conversation]. • scripts/test.sh: This script must also be path-aware and launch QEMU using absolute paths to the kernel (bzImage) and initramfs (rootfs.cpio.gz) images. 4. Generate a Detailed README. md File Generate a comprehensive README. md file. It must explain prerequisites, "How to Customize Your Linux System" first, and finally, the "Quick Start" instructions for user clarity [Previous conversation]. ------------------------------------------------------------- Phase 2: Execution and Iterative Debugging Now, you will use your sandboxed Linux shell to verify and validate the scripts you just generated. This is a critical self-correction step based on the Recursive Criticism and Improvement (RCI) pattern. You will perform a full build cycle. 1. Execute setup. sh: • Run the setup. sh script you generated. • Capture the standard output and standard error. • If the script fails: Analyze the error, diagnose the root cause, generate the corrected setup. sh code, and then execute the corrected script to confirm it succeeds. 2. Execute build. sh: • After setup. sh completes successfully, run the scripts/build.sh script. This will trigger a full compilation of the Linux system. • Capture all output. • If the build fails: ◦ Analyze: Analyze the compiler error output. ◦ Diagnose: Identify the root cause (e.g., missing dependencies, incorrect configuration flags, pathing errors). ◦ Correct: Based on your analysis, identify which file is responsible for the failure (e.g., configs/tiny_linux_defconfig, scripts/build.sh) and generate the corrected code for that file. ◦ Repeat: Repeat the execution of scripts/build.sh until the build completes successfully without any errors. 3. Final Output: Once you have successfully executed both setup. sh and scripts/build.sh, you will present your final output. • First, provide the final, validated versions of all generated files (setup. sh, configs/tiny_linux_defconfig, scripts/build.sh, scripts/test.sh, and README. md) in separate, clearly labeled markdown code blocks. • Second, follow the code with a brief execution log. This log should summarize your actions, including any errors you encountered and fixed during the iterative debugging phase, demonstrating the self-correction process.

Tetsuo

2,840,991 просмотров • 9 месяцев назад