<div dir="ltr"><div>Hallo Heiko,<br><br></div>jetzt fällt mir nur noch ein Caching Problem mit Doctrine ein.<br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 13, 2014 at 8:18 PM, Heiko Baumann <span dir="ltr"><<a href="mailto:hbcs@gmx.de" target="_blank">hbcs@gmx.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
Hi Andi<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote"><div class="im"><br>
<div>Ja- Commit 8ac2c5039273b590aec2a9890f87400c08b949a8
liegt dazwischen.<br>
<br>
</div>
<br>
</div><div class="im"><div>Ich kann's nicht mehr nachvollziehen:<br>
<br>
SELECT e0_.id AS id0, e0_.uuid AS uuid1, e0_.type AS
type2, p1_.id AS id3, p1_.pkey AS pkey4, p1_.value AS
value5, e0_.class AS class6, p1_.entity_id AS entity_id7
FROM entities e0_ LEFT JOIN properties p1_ ON e0_.id =
p1_.entity_id WHERE (e0_.uuid = ?) AND e0_.class IN
('channel', 'aggregator') ORDER BY p1_.pkey ASC<br>
START TRANSACTION<br>
INSERT INTO data (timestamp, value, channel_id) VALUES (?,
?, ?)<br>
COMMIT<br>
<br>
</div>
<div>Bist Du sicher dass der Code den Du siehst auch
wirklich der ist der ausgeführt wird?<br>
</div>
</div></div>
</div>
</div>
</blockquote>
Ich bin sicher, dass das aktueller Code ist, ja. Zur Sicherheit
habe ich gerade eben nochmal kurz mitgeloggt:<br>
...<br>
118185 Query UPDATE properties SET value = '1'
WHERE id = 2<br><br>
Insofern würde ich schon sagen, dass die updates immer noch heftig
einprasseln...<br>
</div>
</blockquote></div><br></div><div class="gmail_extra">Sieht so aus. Jetzt kannst Du entweder mal auf meinen Dev-Zweig umsteigen, oder Du baust Router.php wie unten um:<br><br> public static function createEntityManager($admin = FALSE) {<br>
$config = new \Doctrine\ORM\Configuration;<br><br> if (extension_loaded('apc')) {<br> $cache = new \Doctrine\Common\Cache\ApcCache;<br><br> if (Util\Configuration::read('devmode') == FALSE) {<br>
$config->setMetadataCacheImpl($cache);<br> $config->setQueryCacheImpl($cache);<br> }<br> else {<br> $cache->deleteAll();<br> }<br> }<br>
<br> $driverImpl = $config->newDefaultAnnotationDriver(VZ_DIR . '/lib/Volkszaehler/Model');<br> $config->setMetadataDriverImpl($driverImpl);<br><br> $config->setProxyDir(VZ_DIR . '/lib/Volkszaehler/Model/Proxy');<br>
$config->setProxyNamespace('Volkszaehler\Model\Proxy');<br> $config->setAutoGenerateProxyClasses(Util\Configuration::read('devmode'));<br><br> $dbConfig = Util\Configuration::read('db');<br>
if ($admin && isset($dbConfig['admin'])) {<br> $dbConfig = array_merge($dbConfig, $dbConfig['admin']);<br> }<br><br> return \Doctrine\ORM\EntityManager::create($dbConfig, $config);<br>
}<br><br></div><div class="gmail_extra">Danach bitte die MW einmal im Browser mit ...&devmode=1 aufrufen oder im Configfile mal devmode=true setzen. <br><br>Damit wird Doctrine gezwungen mal alle Daten aus den Caches zu leeren (insbesondere auch zur Konfiguration der Entities).<br>
<br></div><div class="gmail_extra">@Entwickler: gibts eine Idee wir wir das bei Versionswechseln einmalig erzwingen könnten? Wie wäre es mit sowas wie einer internen Versionsnummer die wir ebenfalls in den Cache schreiben und mit der aktuellen Versionsnummer (z.B. aus bootstrap.php) vergleichen und bei Bedarf den Cache automatisch leeren?<br>
<br>vg<br>Andreas<br></div></div>