Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / dbal / docs / examples / sharding / create_schema.php
1 <?php
2 // create_schema.php
3 use Doctrine\DBAL\Schema\Schema;
4 use Doctrine\Shards\DBAL\SQLAzure\SQLAzureSchemaSynchronizer;
5
6 require_once 'bootstrap.php';
7
8 $schema = new Schema();
9
10 $products = $schema->createTable('Products');
11 $products->addColumn('ProductID', 'integer');
12 $products->addColumn('SupplierID', 'integer');
13 $products->addColumn('ProductName', 'string');
14 $products->addColumn('Price', 'decimal', array('scale' => 2, 'precision' => 12));
15 $products->setPrimaryKey(array('ProductID'));
16 $products->addOption('azure.federated', true);
17
18 $customers = $schema->createTable('Customers');
19 $customers->addColumn('CustomerID', 'integer');
20 $customers->addColumn('CompanyName', 'string');
21 $customers->addColumn('FirstName', 'string');
22 $customers->addColumn('LastName', 'string');
23 $customers->setPrimaryKey(array('CustomerID'));
24 $customers->addOption('azure.federated', true);
25 $customers->addOption('azure.federatedOnColumnName', 'CustomerID');
26
27 $orders = $schema->createTable('Orders');
28 $orders->addColumn('CustomerID', 'integer');
29 $orders->addColumn('OrderID', 'integer');
30 $orders->addColumn('OrderDate', 'datetime');
31 $orders->setPrimaryKey(array('CustomerID', 'OrderID'));
32 $orders->addOption('azure.federated', true);
33 $orders->addOption('azure.federatedOnColumnName', 'CustomerID');
34
35 $orderItems = $schema->createTable('OrderItems');
36 $orderItems->addColumn('CustomerID', 'integer');
37 $orderItems->addColumn('OrderID', 'integer');
38 $orderItems->addColumn('ProductID', 'integer');
39 $orderItems->addColumn('Quantity', 'integer');
40 $orderItems->setPrimaryKey(array('CustomerID', 'OrderID', 'ProductID'));
41 $orderItems->addOption('azure.federated', true);
42 $orderItems->addOption('azure.federatedOnColumnName', 'CustomerID');
43
44 // Create the Schema + Federation:
45 $synchronizer = new SQLAzureSchemaSynchronizer($conn, $shardManager);
46
47 // Or jut look at the SQL:
48 echo implode("\n", $synchronizer->getCreateSchema($schema));
49
50 $synchronizer->createSchema($schema);
51