DoctrineMigrations/Version20140129151724.php
author cavaliet
Thu, 30 Jan 2014 17:52:14 +0100
changeset 116 a023e0185a02
child 117 5771052a647a
permissions -rw-r--r--
migration to real dbpedia uri
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
116
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     1
<?php
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     2
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     3
namespace Application\Migrations;
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     4
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     5
use Doctrine\DBAL\Migrations\AbstractMigration,
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     6
    Doctrine\DBAL\Schema\Schema,
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     7
	IRI\Bundle\WikiTagBundle\Utils\WikiTagUtils;
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     8
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
     9
/**
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    10
 * Migration for WikiTagBundle <= V00.13
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    11
 * This migration takes every tag label and search the REAL dbpedia uri associated to this label.
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    12
 * Before, the dbpedia uri was manually generated by http://dbpedia.org/resource/ + english_label.
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    13
 * Now we get the dbpedia uri by requesting http://LANG_CODE.dbpedia.org/sparql with the current label.
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    14
 * 
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    15
 */
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    16
class Version20140129151724 extends AbstractMigration
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    17
{
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    18
    public function up(Schema $schema)
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    19
    {
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    20
        // this up() migration is autogenerated, please modify it to your needs
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    21
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    22
        
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    23
        // First we get all tags.
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    24
        $em = $GLOBALS["kernel"]->getContainer()->get( 'doctrine.orm.entity_manager' );
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    25
        $query = $em->createQuery('SELECT t FROM WikiTagBundle:Tag t ORDER BY t.label ASC');//->setMaxResults(40)->setFirstResult(5000);
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    26
        $tags = $query->getResult();
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    27
        
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    28
        $i = 1;
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    29
        foreach($tags as $tag){
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    30
        	$l = $tag->getLabel();
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    31
        	$uri = WikiTagUtils::getDbpediaUri($tag->getLabel(), [], false);
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    32
        	$tag->setDbpediaUri($uri);
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    33
        	$em->persist($tag);
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    34
        	if( $i % 50 == 0 ){
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    35
        		$em->flush();
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    36
        		echo "\n    FLUSH";
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    37
        	}
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    38
        	$i++;
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    39
        	echo "\n$i : $l \t\t: $uri";
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    40
        }
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    41
        $em->flush();
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    42
    }
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    43
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    44
    public function down(Schema $schema)
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    45
    {
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    46
        // this down() migration is autogenerated, please modify it to your needs
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    47
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    48
    }
a023e0185a02 migration to real dbpedia uri
cavaliet
parents:
diff changeset
    49
}