Show HN: SQL Dry Runs with SQL Simulator (tribalknowledge.tech)
It is similar in concept to Redgate SQL Clone or Windocs. If you are not familiar with these tools they make clones of your database. The key difference with SQL Simulator is, it only makes a clone of the database objects affected by your sql script, not the entire database. Nor does it copy the entire table (if your sql has where clauses). Once those database objects have been cloned, SQL Simulator then executes your script against the cloned database it created.
This software is only compatible with Oracle and SQL Server at the present time. My plan is to make it compatible with more databases in the future.
For a more in depth technical overview click here: https://docs.tribalknowledge.tech/ratifier-tutorials/sql-sim...
You can download the software here: https://www.tribalknowledge.tech/download.html
You can read the documentation here: https://docs.tribalknowledge.tech/ratifier-tutorials/sql-sim...
27 comments
[ 3.5 ms ] story [ 46.4 ms ] threadI guess this tool probably has more utility though.
Cool project though. Since it's proprietary I'm less likely to pick it up, but I wish you the best.
I wrote a fuse tool to provide copy-on-write for the file instead: https://github.com/remram44/cowblock
After clicking around a bit I found https://docs.tribalknowledge.tech/ratifier-tutorials/sql-sim... which indicates it works with both Oracle and SQL Server.
The next I know, tool is closed source, tool is windows executable (?) and the third and most important, pricing page is 'contact us'. There is no way I am trying your tool or contacting you for a quote.
"tool is closed source" I am open to changing to open source but I do not understand the business model yet.
"tool is windows executable" I created my program with C# and java. I had a sql server dev try to run it but he didn't have java installed on his computer. Apparently they have an intense dislike for java and avoid using programs that need java like the plague. LOL I guess I can't win either way?
"pricing page is 'contact us'" There is no lockout feature of the program that stops working after X days if you don't buy it. Also I am a 1 person startup. I am extremely flexible on pricing. I am not sure what people are willing to pay for it, so it is hard to put a price on it.
For an open source business model consider "open core". Open source the core engine, and charge for additional features. I would recommend SQL Server and Oracle be paid enhancements as companies in that ecosystem are used to paying for tools. Keep postgres/MySQL/SQLite, etc open source as they are tools that developers using open source would be using.
Then charge through the roof for the additional features. I recommend at least two tiers: a lower price for access to the premium features, and an "Enterprise" tier which adds in support guarantees.
Don't do a one-time payment either. Make it a subscription to receive new updates etc.
The low tier could be ~$50/month, the high tier can be "contact for pricing": but if contacted start the discussion at $1000/month. Then allow them to negotiate a lower price, perhaps with your absolute floor being $500/month.
This is all armchair advice, so take it with a grain of salt. But I hope it is helpful.
EDIT: after reading through the linked docs a bit more, I have to say that they are quite confusing. I'm not sure what the difference is between Ratifier, Kulvert, and SQL Simulator. I'd recommend finding a potential user and watching them go through the setup/install process and see where they have questions.
If anyone is interested in something similar for postgres, I recently released https://github.com/peterldowns/pgtestdb. It uses template databases and advisory locks to give each test its own unique database with a near-zero marginal cost for each additional test. Combined with a ram/tmpfs-backed postgres server that is tuned for performance, it goes extremely fast.
Currently just for golang but I'm planning on releasing equivalent-capability libraries for Python and Typescript over the next month. If anyone has any thoughts/comments/feedback/suggestions I'd be extremely thankful.
I may need to create separate gitbooks for each of the programs so that would reduce the confusion. I hope you will find success with your product.
In your demo video, when you run the following statement:
In the simulation DB schema, it picks up the FK from (payroll.employee_id <-> employee.id) and creates the employee table + inserts the related employee records for the affected payroll records in the parent statement.That's pretty nifty.
---
On an unrelated note, I think that creating an open-source version of this on the JVM using tools like jOOQ, SchemaCrawler, and Apache Calcite could be a fun weekend project.
A poorly formed query or WHERE conditions can put a potentially disabling load on a database server.