You’d want to lower the barrier to entry as much as possible, so documenting some “bootstrapping” code that creates all the schemas for them could be provided. So the instructions could be similar to:
- install database software here (link to the database technology, and docs)
- provide the connection information as (how to setup environment variables, or whatever to connect)
- run “bootstrapping” code to build the schema (write some other code that can be ran before doing anything to create the database structure required by the app)
Otherwise developers will have to kinda “guess” what the database looks like, and potentially deal with changes to it overtime. Where-as a setup that is “automated” by the code itself means you can handle that yourself. Yea its more work, but its vastly easier to contribute too.
Another consideration is to add a “tear-down” script that can be ran to remove the “bootstraped” database used for contributing to. This way if there is database migration/schema changes, developers can just teardown and rebuild it from scratch. Yes they lose their data… but this is local development, it shouldn’t matter
And again, documentation is key. So documenting how to use all this stuff to get going is all part of getting contributors to help, or at least familiarize people who do want to help with the project.