[Haskell-cafe] ANN: Groundhog-inspector, a tool for generating datatypes from database

info at rotnetix.com info at rotnetix.com
Sun Dec 28 00:13:21 UTC 2014


Is this what you are looking for?

CREATE TABLE itrd_test
(
  crem_hash character varying(36) NOT NULL,
  session_hash character varying(36) NOT NULL,
  test_id character varying(36) NOT NULL,
  acquisition_type character varying(17) NOT NULL,
  test_type character varying(18) NOT NULL,
  offset_from_creation interval,
  flagged_electrodes character varying[],
  notes text NOT NULL,
  CONSTRAINT itrd_test_pkey PRIMARY KEY (test_id),
  CONSTRAINT itrd_test_crem_hash_fkey FOREIGN KEY (crem_hash)
      REFERENCES itrd_complaint (crem_hash) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED
)
WITH (
  OIDS=FALSE
);

If not please let me know, my SQL knowledge is not great.


On Sunday, December 28, 2014 2:49:24 AM UTC+11, Boris Lykah wrote:
>
> Thanks for the report. Can you please send the SQL definition of 
> public.itrd_test? Looking at the code I think that it might have indexes 
> with expressions.
>
> On Sat, Dec 27, 2014 at 12:43 AM, <in... at rotnetix.com <javascript:>> 
> wrote:
>
>> Looks like a great idea.  I tried it on one of my databases and got the 
>> following error:
>>
>> ** Exception: mkUniqueKeyPhantomName: (Just "public","itrd_test")uniques 
>> list must be not empty
>>
>> Do you know what that might mean?
>>
>> On Friday, December 5, 2014 4:07:34 AM UTC+11, Boris Lykah wrote:
>>>
>>> Hello everyone,
>>>
>>> I am pleased to announce groundhog-inspector. It analyzes database 
>>> schema and creates corresponding datatypes and mapping configuration for 
>>> Groundhog. It works with PostgreSQL, MySQL, and Sqlite. Composite keys, 
>>> constraints, references across schemas, and other details of schema are 
>>> reflected in the output. Groundhog-inspector can be used as a library and 
>>> provides a standalone tool for simple scenarios.
>>>
>>> Here is an example of the standalone tool usage. JSON mapping in the 
>>> output was manually converted to YAML for brevity.
>>>
>>> $ sqlite3 dbfile "CREATE TABLE mytable (id INTEGER PRIMARY KEY NOT NULL, 
>>> str VARCHAR NOT NULL, ref INTEGER references mytable)"
>>>
>>> $ groundhog_inspector sqlite dbfile
>>>
>>> data Mytable
>>>     = Mytable {mytableStr :: String,
>>>                mytableRef :: (Maybe (AutoKey Mytable))}
>>>
>>> - entity: "Mytable"
>>>   dbName: "mytable"
>>>   constructors: 
>>>     - name: "Mytable"
>>>       fields: 
>>>         - name: "mytableStr"
>>>           dbName: "str"
>>>         - name: "mytableRef"
>>>           dbName: "ref"
>>>
>>> * [Hackage] (http://hackage.haskell.org/package/groundhog-inspector)
>>> * [GitHub] (https://github.com/lykahb/groundhog/tree/master/
>>> groundhog-inspector/examples)
>>>
>>> I would be happy to answer the questions. Enjoy!
>>>
>>> Regards,
>>> Boris Lykah
>>>  
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskel... at haskell.org <javascript:>
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
>
> -- 
> Regards,
> Boris
>  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20141227/1f0ea911/attachment-0001.html>


More information about the Haskell-Cafe mailing list