Basically the synchronous constructor complicated error handling for users, having the constructor return a promise (how you are using it in that example) is pretty broken (its a promise that promises itself) and having to wrap the constructor in try { } is messy, especially when it comes to something like db.sync('
http://example.org/mydb');
So now we dont actually do anything in constructor (for http for now, but will likely move the rest to the same model) and defer setup until the first operation is called.
If you want to ensure the database is created, as you hinted to the best way is to new PouchDB(name).info()
Cheers
Dale