Mercurial > pub > Impl
view _test/Test/SQL/Diff.pm @ 263:0f59b2de72af
*fixed IMPL::DOM::Schema circular module references
*modified IMPL::Object::Singleton, added auto-activation
*code cleanups, docs
author | sergey |
---|---|
date | Wed, 09 Jan 2013 05:17:44 +0400 |
parents | 4d0e1962161c |
children | 56364d0c4b4f |
line wrap: on
line source
package Test::SQL::Diff; use strict; use warnings; use parent qw(IMPL::Test::Unit); use IMPL::Test qw(test failed assert); use IMPL::SQL::Schema(); use IMPL::SQL::Types qw(Integer Varchar Text); use IMPL::SQL::Schema::Traits::Diff(); use Data::Dumper; __PACKAGE__->PassThroughArgs; test diff => sub { my $schemaSrc = new IMPL::SQL::Schema(name => 'simple', version => 1 ); my $tbl = $schemaSrc->AddTable({ name => 'User', columns => [ { name => 'name', type => Varchar(255) }, { name => 'description', type => Varchar(255) } ] }); $tbl->AddConstraint( unique => { name => 'unique_name', columns => ['name'] }); my $schemaDst = new IMPL::SQL::Schema(name => 'simple', version => 2 ); my $users = $schemaDst->AddTable({ name => 'User', columns => [ { name => 'id', type => Integer }, { name => 'login', type => Varchar(255) }, { name => 'description', type => Text, isNullable => 1 } ] }); $users->SetPrimaryKey('id'); $users->AddConstraint( unique => { name => 'unique_login', columns => ['login'] } ); #warn Dumper(IMPL::SQL::Schema::Traits::Diff->Diff($schemaSrc,$schemaDst)); $schemaSrc->Dispose; $schemaDst->Dispose; }; 1;