English | 中文
IvorySQL is developed based on PostgreSQL.
IvorySQL is advanced, fully featured, open-source Oracle-compatible PostgreSQL with a firm commitment to always remain 100% compatible and a drop-in replacement for the latest PostgreSQL. IvorySQL adds the ivorysql.compatible_mode GUC parameter to switch between Oracle and PostgreSQL compatibility modes.
One of the highlights of IvorySQL is PL/iSQL procedural language that supports oracle’s PL/SQL syntax and Oracle style Packages.
The IvorySQL project is released under the Apache 2 license and encourages all types of contributions. For IvorySQL community no contribution is too small, and we want to thank all our community contributors.
We are committed to abiding by the principles of open-source ways and we strongly believe in building a healthy and inclusive community. We maintain that good ideas can come from anywhere, and the best ideas should win. Only by including diverse perspectives, we can reach the best decision. While the first version of IvorySQL is mainly focused on Oracle Compatibility features, going forward the future road map and feature set will be determined by the community in an open-source way.
We recommend following our Quick Start for how to install and running IvorySQL.
Furthermore, for more detailed installation instructions, please refer to the Installation Docs. We provide four installation methods for IvorySQL, as outlined below:
For a consistent development environment, we provide a Docker-based setup that includes all build dependencies.
# Start the development containers
docker compose up -d
# Enter the development container
docker compose exec dev bash
# Configure and build IvorySQL
./configure --prefix=/home/ivorysql/ivorysql \
--enable-debug --enable-cassert \
--with-uuid=e2fs --with-libxml
make -j$(nproc)
make install
# Initialize database in Oracle mode
initdb -D data_ora -m oracle
# Start the server
pg_ctl -D data_ora start
# Run tests
make oracle-check# Enter the development container
docker compose exec dev bash
# Configure with meson
meson setup build -Dcassert=true -Dbuildtype=debug
# Build with ninja
ninja -C build
# Run from build directory
./build/src/backend/postgres --versionNote: Meson requires a clean source tree. If you previously ran ./configure,
run make distclean first.
- A pre-commit formatting hook is provided at
.githooks/pre-commit. Enable it withgit config core.hooksPath .githooks, or runmake code-format(equivalentlybash tools/enable-git-hooks.sh). - The hook depends only on in-tree tools
src/tools/pgindentandsrc/tools/pg_bsd_indent. On commit it formats staged C/C++ files with pgindent and re-adds them to the staged area. - A Cirrus workflow
FormatCheckrunspgindent --checkon files changed in a PR.
There are plenty of ways to contribute to IvorySQL. You can contribute by providing the documentation updates, by providing the translations for the documentation. If you have design skills you can contribute to the IvorySQL website project. Testing the IvorySQL and reporting issues or by issuing pull requests for bug fixes or new features or answering the questions on mailing lists are some ways to contribute to the IvorySQL project and all types of contributions are welcomed and appreciated by the IvorySQL community. For contribution guidelines, please refer to the Community Contribution Guide and the Developer Contribution Guide.
If you are an LLM or AI-powered coding assistant contributing to IvorySQL, you MUST read and follow the AI coding assistants documentation before making contributions.
This documentation contains essential requirements about licensing, attribution, and code quality standards that all AI tools must comply with.
Please check the online documentation.
IvorySQL is an open-source project built by and for the community. Whether you have questions, ideas, bug reports, or would like to contribute, you are welcome to connect with us through the following channels.
- General Mailing List: general@ivorysql.org — General discussions, usage questions, and community communication.
- Hackers Mailing List: hackers@ivorysql.org — Development discussions, technical proposals, patches, and contributions.
- Discord: Join the IvorySQL Discord community
- X / Twitter: @IvorySQL
- Bug reports and feature requests: GitHub Issues
- Source code and contributions: GitHub
- GitCode / AtomGit: IvorySQL on GitCode
- Website: ivorysql.org
- Documentation: docs.ivorysql.org
- Mailing lists: lists.ivorysql.org
