Marten Postgresql as a Document Database and Event Store for .Net Applications
Hey, we're just getting started, but there'll be stuff here soon. Check the issue list as quasi-roadmap and feel free to jump into the Gitter room linked above. See this blog post http://jeremydmiller.com/2015/10/21/postgresql-as-a-document-db-for-net-development/ for more information
Working with the Code
Like I said, it's way, way early and this should get smoother later. For now, you'll need to have access to a Postgresql 9.5 server and a database. After cloning the code, put a file named
src/Marten.Testing that just needs to contain the connection string to the Postgresql database you want to use as a testbed. See the Npgsql documentation for more information about postgresql connection strings.
this link for pre-built binaries for PLV8 running on Windows. Just drop the folder structure from that download into your main Postgresql installation folder (
c:\program files\postgresql\9.5 on my box). Once the binaries are copied in, run the command
CREATE EXTENSION PLV8; in your Postgresql database.
If you have any trouble with PLV8, please feel free to ask for help in the Gitter room.
Once you have the codebase and the connection.txt file, either:
- Run the rake script
- From a command line at the root of the codebase, run
paket restoreto fetch all the nuget dependencies
From there, open Visual Studio.Net or whatever editor you prefer and go to town.
syntax (I'm using Node.js 4.*). Use
rake mocha or
npm install once, then
npm run test. There is also
npm run tdd to run the mocha specifications
in a watched mode with growl turned on.
We're also using Storyteller for some of the very data intensive automated tests. To open the Storyteller editor, use the command
rake open_st from the command line or
rake storyeller to run the Storyteller specs. If you don't want to use rake, you can launch the
Storyteller editor after compiling the solution by the command
packages\storyteller\tools\st.exe open src/Marten.Testing.
The documentation website for Marten is authored with Storyteller's documentation generation feature. The actual content is the markdown files in the
/documentation directory directly under the project root. To quickly run the documentation website locally with auto-refresh (it's not perfect since it does rely on .Net's FileSystemWatcher), either use the rake task
rake docs or there is a new batch script named
If you wish to insert code samples to a documentation page from the tests,
you'll need to wrap the code you wish to insert with
// SAMPLE: name-of-sample and
Then to insert that code to the documentation, add
The content is kept in the main Marten GitHub repository, but the published documentation is done by running the
publish-docs.cmd command and pushing the generated static HTML to the gh-pages branch of Marten.