Re: Creating a DB

From: Sami Pietilä <sami(dot)pietila(at)gmail(dot)com>
To: Thom Brown <thom(at)linux(dot)com>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: Creating a DB
Date: 2012-09-16 17:17:03
Message-ID: CAN08J2hJK3U_CjaUh8KOjxKmOZbYLW2Jk169bjht8+WorVi3Hw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi,

Thanks for detailed reply.

However, are there any utilities in postgres to help with migrations.
Perhaps something that would do syntax conversion automatically?

BR,
Sami

2012/9/16 Thom Brown <thom(at)linux(dot)com>:
> On 16 September 2012 10:02, Sami Pietilä <sami(dot)pietila(at)gmail(dot)com> wrote:
>> Hi,
>>
>> I am trying to create local copy of DB from NCBI DB.
>> ftp://ftp.ncbi.nih.gov/snp/database/README.create_local_dbSNP.txt
>>
>> The FTP site provides sql files and bcp -files.
>>
>> I have started by trying to create tables as instructed:
>> psql -f dbSNP_main_table.sql dbSNP_main
>>
>> Unfortunately there seems to be some syntax related issues:
>>
>> psql:dbSNP_main_table.sql:579: ERROR: syntax error at or near "["
>> LINE 1: CREATE TABLE [Allele]
>>
>> How can I get postresql to accept provided sql -files?
>
> The file appears to be formatted for Microsoft SQL Server. You will
> need to do a find and replace for '[' and ']', and replace them with
> nothing. Also the keyword GO isn't valid in PostgreSQL, so I suggest
> doing a case-sensitive replace of those with a semi-colon so that it
> terminates every statement correctly.
>
> Some of those tables use smalldatetime which is non-standard. Replace
> all instances of these with timestamp. The same goes for tinyint.
> Replace those with int.
>
> It looks like everything else in the CREATE TABLE statements should
> work. Note that PostgreSQL case-folds unquoted mixed-case object names
> to lower-case, so if you want to preserve the letter casing of object
> names, you'll need to quote them with double-quotes. However, if you
> do this, you'll have to double-quote the object name every time you
> refer to it in a query.
>
> In the dbSNP_main_index.sql.gz file, there's also additional changes
> to be made. Again, replace '[' and ']' with nothing, replace 'GO'
> with ';' and replace all instances of "NONCLUSTERED" and "CLUSTERED"
> with nothing. There's a mistake in the file though (at least as far
> as PostgreSQL goes); the index 'i_allele_id' appears twice, but apply
> to different tables, so you may wish to alter the name of one of them
> so they aren't the same.
>
> As for the rest, it might be worth reading up about the differences
> between SQL Server and PostgreSQL syntax and convert the rest based on
> your findings.
>
> --
> Thom

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message Yury Peskin 2012-09-18 18:45:15 issue with perform
Previous Message Thom Brown 2012-09-16 11:47:16 Re: Creating a DB