[PDB-tech] peeringdb sync - sometimes gets errors.

Stephen McManus smcmanus at akamai.com
Wed Apr 13 14:36:33 PDT 2016


While it's good to clear out the old table while loading it in, you might want to consider something along the lines of:

drop table if exists peeringdb_facility_temp ; 
create table peeringdb_facility_temp like peeringdb_facility ; 
insert into peeringdb_facility_temp ... ;
rename table peeringdb_facility to peeringdb_facility_old, peeringdb_facility_temp to peeringdb_facility ;
drop table peeringdb_facility_old ;

(repeat for each table - ideally in a loop with dynamically specified table names instead of hardcoded ones... )

This way you don't end up with a gap where the table doesn't exist while you're re-creating it. 

-Steve




> On Apr 13, 2016, at 5:29 PM, Martin J. Levy <mahtin at mahtin.com> wrote:
> 
> All,
> 
> Occasionally I get errors from doing a sync command.
> 
> > django.core.exceptions.ValidationError: {'name': [u'Organization with this Name already exists.']}
>  
> I've gone back-n-forth on trying to fix this; however I realized I should share this sql script that I run prior to "sync" in order to fix this. Once you run "sync" you have a clean copy of PeeringDB.
> 
> This can be found at https://github.com/peeringdb/peeringdb-py/pull/7
> 
> Enjoy,
> 
> Martin
> 
> -----------
> $ cat drop-tables-peeringdb.sql 
> DROP TABLE IF EXISTS peeringdb_facility;
> DROP TABLE IF EXISTS peeringdb_ix;
> DROP TABLE IF EXISTS peeringdb_ix_facility;
> DROP TABLE IF EXISTS peeringdb_ixlan;
> DROP TABLE IF EXISTS peeringdb_ixlan_prefix;
> DROP TABLE IF EXISTS peeringdb_network;
> DROP TABLE IF EXISTS peeringdb_network_contact;
> DROP TABLE IF EXISTS peeringdb_network_facility;
> DROP TABLE IF EXISTS peeringdb_network_ixlan;
> DROP TABLE IF EXISTS peeringdb_organization;
> DROP TABLE IF EXISTS auth_group;
> DROP TABLE IF EXISTS auth_group_permissions;
> DROP TABLE IF EXISTS auth_permission;
> DROP TABLE IF EXISTS auth_user;
> DROP TABLE IF EXISTS auth_user_groups;
> DROP TABLE IF EXISTS auth_user_user_permissions;
> DROP TABLE IF EXISTS django_admin_log;
> DROP TABLE IF EXISTS django_content_type;
> DROP TABLE IF EXISTS django_migrations;
> DROP TABLE IF EXISTS django_session;
> $
> _______________________________________________
> Pdb-tech mailing list
> Pdb-tech at lists.peeringdb.com
> http://lists.peeringdb.com/cgi-bin/mailman/listinfo/pdb-tech



More information about the Pdb-tech mailing list