[PATCH] Make LNT compatible with PostgreSQL

Chris Matthews chris.matthews at apple.com
Wed Jul 2 10:59:51 PDT 2014


Yep, so we use Postgres internally extensively.  

Right now, if you make an empty postgres db, and just use the URL in the LNT config file, it will create the tables on first run.  That is how I have been doing it. This patch is adding a command line option to do the same thing.

I think if we are going to expose support for Postgres to users, which I agree we should, we need a new section in the documentation explaining how to do it, and at least a smoke test in test suite to make sure we don’t break support, and a test to make sure the create call works with a postgres URLs. 

Yi, can you add those things to your patch, or in subsequent patches?

It would also be important to have a section of docs on how to migrate from sqlite to Postgres, as I assume that is the path most users would end up taking.

We do also have to be careful.  There are situations I have found were the same flask queries don’t return the same results on sqlite and Postgres.  I have not hit this in LNT, but in development of LNT extensions, so it is something to watch out for!


> On Jul 2, 2014, at 9:17 AM, Daniel Dunbar <daniel at zuster.org> wrote:
> 
> We run our internal LNT against Postgres and have done so for quite a while, Chris can you check this patch and see why we don't need it? Is it just because we manually updated the configuration?
> 
>  - Daniel
> 
> On Wednesday, July 2, 2014, Yi Kong <kongy.dev at gmail.com> wrote:
> Patch...
> 
> On 2 July 2014 17:13, Yi Kong <kongy.dev at gmail.com> wrote:
> > Public LLVM perf server suffers from frequent database locking issues.
> > SQLite is suspected to cause the problem as it is not designed for
> > multi-user system like LNT.
> >
> > The patch makes LNT compatible with PostgreSQL. Although theoretically
> > MySQL should work as well, it's not tested.
> >
> > SQLite is still supported and used by default, since setting up
> > PostgreSQL is difficult and unnecessary if deployed locally.
> >
> > To use PostgreSQL, you need to create a pgdb manually:
> >     CREATE DATABASE "lnt.db";
> > And run:
> >     lnt create SANDBOX --db-dir postgresql://user@localhost
> >
> > Cheers,
> > Yi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140702/33509158/attachment.html>


More information about the llvm-commits mailing list