From 30a4aaa0b4f94b2822bc6440253e5529f16ec885 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Thu, 7 Aug 2014 19:22:09 -0300 Subject: [PATCH 01/10] =?UTF-8?q?Atualizando=20vers=C3=A3o=20do=20composer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.phar | Bin 955989 -> 1016876 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/composer.phar b/composer.phar index 282583ec8d817ce7986ef3a587a58320a86ac248..75f9c86d7f915a5acfa32141a25156fe2b7e2295 100755 GIT binary patch delta 52725 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 X$=A2PvTXh9pGIDG*<}moR?huDRIqi8 delta 18957 zcmch933wD$@;E(L_jFIsbTYZmNirleA@@N@LPA2qorC}h$`O)DGC3d@li^e@Zv_Qu zp%4@g{JDUrL6lx`EH~_5DFjGq)LrC6^XzvMxA<3KA}mXgRHhtx|LH03HYv}?d`6P#+0s>u5CWH z1da|)Pn9PO3YWXI26>4tL>il>QYNs`e_5gYKn@`gVIr$hGy?{_QvOAvoT|^F9Ya$F z4ES&^Qz>uP$H=Sne$o$q>U07Zge@$=feb0fsdf@595FmVr42CnOCLz;0D&8SK9twL z#+wYmR1vccMU>ARe!zey@924$@;Pk?q@6X!0RxsFpXHX%Syau~*g)yw5S1i>enRX$ z{Un>%U^*)mNmYHa>@zCFKiDAJxzjpefM?wBEAsXrl~ghpP6Zgp4WkG~cEEs1F9p5P zkMK_}oDOVc1`Jqp+lqK9S+OyY&YEH@pzvX1q4bhZBLr68K24D&ZRl#=Mknt_svVDH zq>vS?<^{Qu_m|EFstX|Sr||R>D!w4E<^7~Y-|iB)qG_;uHE!+^K7sPO%oj;peY^)^xh#v)?GV(}tPn;~zH3qFme}DQs<|V)N!FQE!6Qt=DKVF+SY0+6U*f5r7P;3R zCO1Estd(1UcHGN|I|CLzjA|rINxEmJ$l1q>&UhOJ$URMLS@? z?oq*sxbt@TGbunSidR_?IB`kxSMoV$sBH6d(phDGg;H0jia_AlgBxCuSBeC|BLCgb zUyAW9kieT(Kem%Bf)1MeMQN+gcnQ3mQ*y;e+9FTz52NHe{0pQX{8jPR^x~xs8m(*VtuhlMJ3K&QcZGodHoE12M!aac{((Gb&0)d7Iotc<| zyf@S&_XL|QV>+5TiHNh&3UROHsvvdZ=AaRjKyT0}3iE>1_HDrxROH#{eR9pg1#-F7 zzB)ubLGkDVeyFbJaCe+?b%<4!BxD?gFNc&d;KdgG}ZMq@E7M6tuNoRZ; zLf|peIXkgv6xB{=ei^E2ZBSS#rEs4xV89=aZAqxLP+5ww$eY5V>A(n-ZGOFVH$72g z;FmCeNjeU-asT zu#kpX>dsyXQ;`UqkoM~?y8luHCqEt$LMgoxp?aU+BGl8~G;qLx&sQ-WtF1(4PVS6U zb@v2PUwb$M=!(g}-y$O@fsZ3q0^w0*v^_IQJtD70sT;#akCx8+?2EvUQ@$QaO_dN? z8XZG5G7ry9S#$L(K2?zcqg)YXkUxpGN^aj3L}1l7D;BP{4VB7Jx8&#(_+NUzi+$pf zd2?;*p!-PNH;A#okO|PTU|#>oa}=3yaRLl)EG}5W7|07^f2XYg{Qs zz8W{4!U^`V6mGPup5#kkJ8NJS?O#5yR2m+jE|$R2FaKkdd}g33Nk;r+6)C=+!ru6s zC>)!h_HRmPq;1|Yg{t`&n#ajcu5ea-Co!vywYMnElvboo(n!pL?ILfXSZKmbo`Xp-SL>3$?mEP%k6hcsPO z;rS-m8h`?P;`kNSkgvxu8#IO-_-5uU;!sIE`1DQ);+Qrj1`%qZ9FiDc0#M4Oz z37m4G<`})j_at%hk|gzFd^D+uN^>?TPkO*-PXvzL?{vzE$#$tIQKdlO;P=9>$}^Ia zqzk^2NMKsdBQMD7lO59Ed@&7yx|$V#r-FQ)tnx9YWJcbOjMdd zj!RW}7N-`{wcVDQPq#1tDZE&8=NHryMWw~k&cW#Y_78rglS=DOQ)8P~QJDGWk&B5i zGLj6M+d)+Qxu|j^@X@9_y*TWoL>P3&LmsTaQ-(2PWx7!gNw-J?eew~w`pWBH$vNqX zQn*h^1P+>WYOg#yJyiVqdwxc~L|hy}BJj{dJIhGGbSfiGa^u}e`U#Bpd*ny-8BS@cPsIej zdGV`IstZ@9N^MD|>J#_);MGj^W+=&0Z@&k!3M8X1{338OSKdlB+><59SF==45t@y+ zj_>#>{z1gZy$sL?49rHyC1m3E- z*G;W@!{9iIxNmTgR92#{lE8%5a}#C1oE+(4-|i7O;>Y@Pn3;sh?`CrWWNXDHbq0Zt zJF4HnolKW9lhsZFgPJeSlMm-l5F*zl7bm)-+l`es|$;K!9 z=oZUG1=;e_JVR(@YnPk)fn7e!BG71meV2Twnh=kbZF&BoT) z`)q)~{N9;|zhR2t>1mQ6(^07g#sHzNGYh1 z9Jo@#mq25rX{CI&E?iz(WtR&J4f5FnRV}|1Op#b$=t$uBPa<#YN8DJbMrXSUo2c%N z&UD!_)x&o?){o*WZV=gjW0FaRL`^KJ{(iYNyLjjLVV_4U3Ww z7x__Y58(0m%>)s%eJC?SapZVNRQ(>-*MbqTrCZ# zP?t!c?zdkHsN_Y%)kCv%c(oLW9){?Ez>l~5W2-!4Vu2i65-6?o-O&W@ukp6f0n-RU zURh$MYk9n+hQQUO^;B3JDlzw=OK+mt6v)q%sxi+SrRp}NjcA~A){Yo2rTela0-rl= z|4mLFHIY*I3tl4;AK7Xtr?*B0N;=>E5V*r}->>qwqf}m><89)p_-TN;nlY$@(UP>) zXQBkYu;fy>oZe!U&r~MLzmJZj%p=A$Qa)pl+*_Z1Hk@pdoH#mws@3RQE`hUe%iSpN zo)#{j9h)rgE#o17xTvc3clA1x|29@#SNu5D+*Xd8MOpkYu9L#fvIfd(D#@wxZ~ukv zVB0uBjxSdo#;|f#mWxQRz#VRq_oCXzSD3;^yW6_dfb#xub!Q07{;Fb&d~q__=vdh@ zKAJK~AFsw7>&DNZ?SGE1k#_qg5xDE(!xvDw1#;&EKPlFC7zhmBe7@SJopky51k8SX z_D$gDvz{B%&uV-HE9XrNp=)VCv-;d^ zfv}47URW$APgd>b2~@JpHhB+PL%y7NlMpy!ewWAH-QC(r@5M#x&dOg*c2njR zH>s+B9>rbGU3d%4KxI7RW=>{qR`)0DW;M=Ra&xWp7vB*f@QSJ9E?nQW3F%XUCB~;d z0+lK6{7yY5Sqh=JVTzh@^h{ABN$u2js;ypB=b5yJb*SrndDS$dymx9yAUTPrQQp;I z553vv7pmo$>I}pX<)mqD?5rpH5HN>Y7f<;RJ5A?&v>ddF3P` zuT$Prqb3rkYgB73o6#aQ`|N_ip10it#`s#(tJ`FhK zuWG|6t9>}T_Ed2oT}-%3kgMucJ+{}W2j#;$7ZowzrLx}QQvG#6y(;>B_3d>0a=nMb z&IWbk-)>NI#n47I9h=!WLfYeVAOt=m?3yC)X;gz%(Oo44`!?sV?Kh~Vhc-pYr#cGcUt8np9NWw;3gww| zDKyPe+e>DtoBQ1?)uq(6O{e2~+Em)n?W)FBw)@9$2-*i;hmFddqZau zHLnNpEY6>H>#uz}NRXquBIHY*X6d4OZ%iUE|MJP7Aft!)%S^a@|7B5r z=#gR*LAANty4`<*6ZYt6IP!uSi$Ld-Af< zce5rq(rE~jSAK4QMQ50V9bbL^ivNx`FSSOk6*Wfru>p#jnTt@_%6zC~&0?-H!QBhGz3z60-QC#g?ey4EYzg>Zif!#oCPHIN0aqIn52xCh z`OG4yXl25c^Bv3~*3{hUZJAS_-07O*ZGm^@G9w}H4kitYYp|ofCX*4jRZ@R~zQOs2`^?c_H&Hql7PF&WG(> z$GmTc&hdgtF}%uTnzU{1ZYX%0iE`o(huzcJ)>e<3Sla4Aw$!d--0fZ71rB>tD`Gg& zz@YPOCK!~5HBqoORuc@z-ev}C7V)s>Fq5w29bh(c{Y2ybgebAq>q)|Fw>HS!-Rbf6 z@yO?)_85~3e|duqf<4C=zx4k`hQEdPxV>{c9k%AS&iWhVCdyBR$m2}7);25;zE2aP z(5eT)ncKAyP#4K8gSuyhjMWF1f$c-BLHY50<_M=O{hC=2qpS|obQZzh#hMTZnWm|L z*>g3C%AskR6FTL5od$GpVI`ZR&B#uJeL7<(K@5WP?`UG-lWj&GthZ@WU}Cr~7(RGG zGf?51H1`XTT&d+?*Do4>ST&3dQJ$ZznXFNCUX7oQOpk^L-e7`fH|vAp(KlFDNt&1b>1n5FJRg{$37Y=F1f z8#+6@SmHpVuoc+s-j>$x8nc*L-1spl=L*ORl5Uh=z*B zpjszN=kj=53u@clo@Td0H4Vg|CXteu;6#H^F&xe$pXKxo-#AJZ?lUlzqI#Mfv|%PI z^}0PidxhmgxUkH6SGT(ZRfayG&1s7%D6l1@B-rBPZGSe9l7PP03B|u?hCuIrji5L` z(R{CEcnCkIiGx+S1{>5((CT331}zWm=QOp-yXQ2!3^4I3n+JPmX>M0`T+pmB!Gpb; zVX%rZCeSVKv$a?l|Es17tn;-2aO9FEoAqs(V*aP5oPp_=HTNq&T-NMj`UU_8(m@K- z>eh5 zOadh6P|jb`l>G_SmpZh!{z}Q&OnvK7)X68T4 z*zh|WsD&p6a$!2$Iv#qivJYx_8x&q)9cvbGh4Q-3Owe=C$VJ)bc-nA(Jy>9D#pv5s zj4m9HNNa=3ix(dZWw>-0^bB4wOBgQMTIuTUp4aJV%(EpplX&XT6+DzV4Ck}5eAuex z=J&}8xZ+}H)o~WM^qIjw=+D;&`wUz*yzm!xpe`lBnIP|57XnYQ+}eIBMI84c%-d-Q zfNYklgM~W{eh?X`E&dNmxGzv!r-vR!t4|)$G1ozl*BmSY;_2#e&$FSXNl7rDx0BA~ z!iF}ttAilIvhkWwuvBS`aJbxJh9}E~7>KGtujUNb%7c~N6SQ|TP=CwOjGyBWE z=sx$H&<4Z$Ds38!`9Uiw6RWgS&2X$<`!K9+&}PFpmv#*N@u~I}c(74h0JHweTA{U9 zFvB9ZmREjj)ZT4^DcxF=^66~ta;ty07uDa8m)F`|*4f}{tM;_P9d~MDKt8OE;8edg z#{=8{$_0QeLZ^er?$nB~dxLf$gx;miiJ&X`AC{?1xl8-1M%Uiyb;I`uwc)UHpEd!c zd+`dn=U%Oqfksgq0wb1d=Rmle`18)UQbsiUd^3zyj^p=Yy6PVOLH|AD8Isn-e8k< z-)Z=NwM;&`?W#P#^`wXbiXzQc07qUPxQm+;BOd62fx>~gTS^z>w$v1(Ahn4FA_kb z$b*%yqiTO$p)KbBWLuT-pv^WacRsHDA~5*B@4AB=Pa0S#kM7jEG;p6&&nv+%YpV@^ zLhPE2@O?JY=2V{Bqb;%g88)(h1I`}Q=wQu0treW>w8H?oBq|k0v=bPJx>aWYwpwpd zj=raDVXQQW>UOs^T{BDQiqi$buncXe-Q#w(5wGgtF^O-k^|-s*Tn%nVLh1~1o90bV zot~Ns>yK%}^we#@pl`H^5H=Al{@Y{PJ2Y_8!-}wYGbe$xiDfyocy;YDo7f?|b5Scv z6^JgFyEUQ8vJbScO|UZ2U-xSOe5lh~p*B<}D)obOYj`-9ppBJ#?$s$#gLU7D z@X8WH92Au5?BrJ@tSHruCBLkY5~w$>9ihv;p=D7#BXn097#qyqqH}9(PB^heSEVFx z)rmTo_84wJ>2tcbz5o7{1;y#V78Omp-odQ?oCBNP7!O;bm?&&0(=zn+0?gc@H!1Ey z{R##oKa&JSf0%S&DAL~r8;bNZk-MQ-Uk9s;_1l!X;re;pzvp*$tp1U)OE73@Z%6k% z+ST2H=fCgBVKC%QvL(bNpvNYM^aeC?#W%Syogz7xouHDLbLw%jgEo_FX{h|`C{w?$ z5+dkio*HAo=#%K`-&ms$4(Sg&I_9*Yk6nZm2yVCX#TxxzIpxwu{ks}i_mi4tp4xmaO5?8JUsp}?!iCK z=tEdI+hGWV${|J;R^6!)NJME;%wOsk+F%1~XvL65&l#SB$`!0l`GPZ~GKzyYY#Ii8 z>y2W6K4w(j9%DG22;FCNp~_jWVOKSL&+}pM_&bI~<#yb@E$Vkko5cX~8yMzjA! zznf!Wq32ahJBspnR_Pkg{=*3Kr?4Lbewqz}&W}U`M9*MZ1G&C&vu~M-OWHS`O;etn z%ARE4>*?$jsC>&DsH~sCCNOZW8FQ_ZwQMp>uVbeNw7HvI4GV|?bfb!B)a!s@JGj6x z>hFZq1{bEM3ATbl%(hy*-mXOSG``-H?ztVlk?VWaY`1>^_AF*19V(p^9P1yrMyI8@ zzY`J{GtobBWuxfc*I?VW9nbV0=0uVMG~+6bzz zLD6Y4O-}|%5ztN=I^~ac@@0gc&mZ)yw|`~m68dQL&rHEgAXUXkL1#cBf4&b1diF8F zQ&aky7*qKqC@0xJVcI8Aip@?1QXLT{TPPI91nQEUB+sxDF^N;U)_V)Yc#T0Y`f)C1 z7|G#UJLb3v`$g0VArW;m?ReVT8a?g~WT@s$*Gu6fIUElMw`y!zMTkUm96AGi6Y@++ zNKHt&mgLY8wJfEwf!=|-fD}Z;^eg5D>G&c~`wh!bWkdOt_gw7PjIyVJ-DZG}nP|E( zi`f`uVHYirr^t3j& zc3_}UV=I7VFS1q*)@z=55d%W|OKg-x0*>n^K=B4lL-%gM$gd0EhAQ$)>+QTghH3t>kw z_q46zY|6=_>@*{YyUf8#*(tW%sI32-UCk)TU$VROc=>GSFj}e88vVfZEgJwa-?EVq zw_G2fO!$_4)d0IEb4LBBRxjQWT_0$J6j{gpz`%zuV2V;#!zC(M30=y-j|~_GJ>IH` zR#<^sf(afsY4q?+1UD68XLA0E63K05mBxYGOs%4Ga<4~|dXoiAd7P+hFXKLx z;P6)%LKpqS>Yyu{;o#*O?lYKw(%=t!=W!w&o52Oa#RItBxLVE*ANlK@%DuJR7A;9X zA6#$&CVc7zX9zcNkHwCv{k+dO{xuOLIA1DeB-Hj3ccf zGb^(xHzV8Cn4L4kmD}jbYRq+IH8eFfWw~?H>#;!9n2|QP0akT#(PDOTdX_CMH!mYQ zFC$I)TPL^L2#xomYE~@ZSR>5+LiATYxsA(X=}*9)CCXFxal<4?nrgAYUX8`9oLSFx zab(5gH*xkUj?Vg-?gp>ZcmE`K7j&sNj_(dqhsnKzF;{CxGxgsEzR)2Ync#Jz2V;%B*a%16&~+YPYoMeZ|Y>r1$5xJSV}=92`h$c;FqlVHEX zEi<4C#8U}%d$0yE@2^~<4nEq$MZl|n<5HC7SGjME(E29lgp*6nnEgC2=;7qedI1hD z)R_U__J+Wjk)jorwhDn@2{K8_U2k!hHBj)LAi=43IS$sp!_~l*cW~dY^%WfC;-EE+ z72y7ZTp8np2{&OtK+*l*k=_&^V?|*fvyq^Ud}Sc!D?8!M$scbVZrnM=_(v{h^Zmh<`;5`oT8n2Iqm(~Z z8{ZWLhn-x2PTQPrxANiR#taScn~c*$N4$M5I=)$S0KA)w1io`tqEcvw?!GI4*|_o~sXoPWnSFBk@YY5W!% zj~N4%xt|%|W|Xk6jO#U)iE70OLmB$1McMlg<4Y`z{m~c(_1_!)A?HV<86Nxz{o&m| z8h;-Gt1|f@;5#gXU}_$3hPN~M2qh|+H*-)F&kJy35I+uVBJ{W6vPwN#13!uR&{zX3h*YUr=-Ou!LG4)9@nLH7m2rG> zge|tDw6si>qW^cgkGEeLKM?ZDct?~fc1cO{@F~d|DcOXL+Q_8hFD>KK0xVgXiAZczc=hG6dr#Putoktj_^~+mboIJh~Oci{BMMWM_ z;#&+1ui$h2eVx^%F0ZTE)7psoxW9rQqP$nZf5d=N$;bNJV#ib#lLd{LRN`Cr*Oh#( zpDnhmvXT(XZ18nwPvD0Nw%GD9RceQF>jZv|hDB`CQtG$hSLA0iq8nM z#ZI9@q0#jH>|->fnjfqzspi)hVr}^GEMW@%C6|{cmzLT_kIpME&zm$U!G;k#2EZw? zuyisXs5DIHF_u`+#V29WVkMuTyt|NpVS)h*rS6Wo%3TNf{aWR|Bm5(bzT4Z_+5v-( z@~?vN7+(P8$M|JJK2}>==eoRZn;o9-fzk`8SgM~;~b%{5D>!8^R zQTJ(Bcuc?#v8z7g16axyYx7Hg<|CE2KI64Mo~O>^b^6XF)LGHz{ALE8_>nIH^Ot-$ ziva|QPNDJw9|5Uhf)RT2OgcsSlHY=Jm$MQa_=@+3?hqk-?HQhj-Y~%eyF-L**b-tA z;kh4qH{2g8#KZnjAs4a_@Zp3?ywq5ig4eCRyS2H))rPkbJZKRE@w=@UEIp=dK3EC-mbWmlv`w(W-+n;ui1?uT*{aBD(7};!P=;N-yr3f` zX=U$4K3)S0f95kF^anl!mbT-(tGzr26+iG8dHlfJ7-ane|1uepVA_uueLwvr?}4d5 z^U-ADNJt67uTI6Ui8feu9&1#ae?kX&14@m`|H98$j6faQp{pMEE&3wvLHjR!uur;p z+|UibAo&|nl+a)KW(~}~%%9@=j09?bLs=L9hN|n|PUX|z_>VO(<|QUQAwXj^S$TvSxx%1>xhgR;8E`su_cgRHb5|csXO0@LL4^AnNsCl4o0FgY6pO z4mi6RBad-fAw)+E1kSx8*x-;>kOKN7BFCf8Y$5$MF-)EEK)I;^I!BuXr9&@R7}h5M zEHel{UEhd7Wyw^NS$a7$Cdj6g{L*}(gA)5oPLup1S!R0fK?Gf4tyFR zOoO>Eh~e;9q+pFA5tfe(UUef$3F5k)fnOtq=zO1+ocNK{yPzD`f{b|EjsMX?qOZ>E zqeBzyeKExFql8FPdlxBi;3rBf`9k`3Eax1F7EDs5r?UaydFACzswy2{T~!0=2k>a? zY{D|Q+a{#JgGu-S;&Yo24Z6GW%Su{|u-Vwz)YR?vVm$*sh!HM;dm!?7#*XK>AWjg6 zs8SGSqlweO*8=~_BMHU#McZBYxRr#_^AeokibFaV_7-BI1Q0MHwgz zWlFA71N~M^rgqaz*k_}C_DmFY4THqkeIrV8f}q!`<}oHwh+_2VgEMn8U{4CV)YXH8 zPzD|i6s^jhB;hqC+un%RB<@BN)_@uvcET^oHY7bagCzGv;g}$_xjQiJM?9yk(3XZO zhmQsc$x1+~P{F_#>rE-}*hqAy8xQk~;Q4f+&UbSJWC(4b&&2Zg;bR6C4rHLOd%6L$ z11zzziX&5qWY%<{f7w%nKCwAV7_lY_Puv?>LLvT;AUs=e)1HmlLJ94$87#WBgM|*- zySGWyM?2Iz<2nPo;W8noG7Y4&dL2CfBWqQPa_~UX*^jRm4A3=1D5ZpZGVsGgWj$8I zmy`&4<(^#O5Y`T;Q-HdBA=ON&qGwiB4t{T=%R0Z_l%_5`Y8>7G%Z3V9VO4<;teZA4 zwgxsA2+K7I1L10cV9%Q|kkqdFUJ%*c-3_iTcVn@qc@8O^+px~1c6GP7+uB^7X50st z$4l-Q$Q~w?_UkwReqUq`B23XoB;eP=j!}YDIZ`ZaH9&ocA<)>3mve`=3BQRgA1$Q9 z*fGM*aA34h0`eFkTSvZwz=Oku2*of~xWJf+)zGp4Eq;NaOo%e~71nL`mX^8g%J4E_ zlc4;5lQ7w!d{!$280jsebhQfK*k)#?CGiO!cO$JQW~O7K+2eMr1SzwOv1-(SpQq^f5M|y2!c!d60E0ouLeK$1n3nAAgc(AhMBWTFd$4@gNb8;rAgvR^ zAak7%Q-U!~BXyP3kNBQusGa?`*x5y@=G`W*2_l%E z664_c$FK-d^OTSR({B;27#h&eigcPoEhH0f!_)X7Vfu6^ZqSFpI=DPC`!$BZV61A zg!s5?V*32Q>LBO}C=sU(zMo+VpsS6)VYR;3lvvche!&?i+_RemJ8a%0M8Nt@_yWPu zi1oZFn*=M@w?x>!-4q3nJS7Z-*3YzpV*M|{t6P0APx)nw@Q5C?x8o-&{K}()_n#MP zz%dQq;LYd}dbI&qKWW9+Z{&YV(6~|SyiKWnQ8nxn!JBMMR5-PP9Wg`bZK=>}C! zCFhvX&Ga>1IWBM^%E@npUybDY7z{lbCJUrVCSm7qf}gQ}sew9EqCo0~=U7uRv{_7J zu%WzUG1({e<9t$Y3TDX5RRcV5uW5w5O^$-vQDThp#$3~AUfy{h7K&4}dU*8~Q?g>d z&9qfV2u?6)qoDFKW)x@cGWn67-n&c{1QyQ2T{x&~*=HzdeM{y*f9Tw$;HC4)V}&B-+wVzneT@V#Q&wrNtsxU5yx& zHXXWfr(nQYTRLK7adlZ0 z_-(`!Uh;=&bP%6hh`5#4EiQ|$^#4Mp#D6CalMLe`#E9@)`xaMn-G(|624VOAcRiX; z%Ux@3YSAU(Y!!uT~UcA01 z2`+9C!!%C(2C!UbgPuT9r+5NHx2C{1U3H!KJO$V3v?cdN_*hKB7h~=+cSp0gJi;ar_JxU!@qH@%55hHui%Vhgk48TG z-y`i9pob};B?{OgritZD6xcxpct*^||r$L11 zPSsavm>x*rHHa-Rev2R|>BGejMMbC-M;f7iiWsfjHbp$+2byYq0Nj3uco7DTVf^8q zJH?d$;VunPuP}UlZh+IjnR3Z1d;`?}myuPLEfCj=_@J}*|AVenG3ADmchHYq>8DsC|M-E(WB%?`EVb>N`5 zR%w4%{5l+_To8-!Wz_l$Vx02n1u-nU4|`{{83L7!S>~~UOd(ttV_u42=2-JG1mBD` zKdK{vy>kCJb88s9JlUMC{N^^t8Nk}CwQ{~k0}i+<>5}B7FX>@-j+RxvYcre2?fk3x z2Z4Ok3xuKj%|jt!27co#*IKZGH`F33yZ4(#4U?mM^oDtB2&_M2u7S~~%|(!M)|>@3 zC(XfD8dJF&C*dQLc31bHLF7ojcGjERNW=A-T_{tm& zrGJ>Cl*T{I54oaUnGG2^x$Yd7JG&t>ZAfNXMnnCO!SxMUuEw04!RbnHtz`mZp5$(8 zoIZUlei<*rq!W5;E#csH;b*mmI?D&}waa1x*=1S!AE{;3Tk;s&f8aR;Vpba?VM~MM w*8eTkKxJy9WoLB6t23V1*z;@d_p|eVDfKHoxAdv@6IqZLI3~& From 6c4d9c8c34b19a7a7af1b7c5bea92fc1140f3dde Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Thu, 7 Aug 2014 20:21:13 -0300 Subject: [PATCH 02/10] Melhorias no composer e bootstrap --- bootstrap.php | 29 ++++++++++++++++++++++++++ composer.json | 58 +++++++++++++++++++++++++-------------------------- 2 files changed, 58 insertions(+), 29 deletions(-) create mode 100644 bootstrap.php diff --git a/bootstrap.php b/bootstrap.php new file mode 100644 index 0000000..61b6e8d --- /dev/null +++ b/bootstrap.php @@ -0,0 +1,29 @@ +setQueryCacheImpl($cache); +$config->setProxyDir('/tmp'); +$config->setProxyNamespace('EntityProxy'); +$config->setAutoGenerateProxyClasses(true); + +//mapping (example uses annotations, could be any of XML/YAML or plain PHP) +AnnotationRegistry::registerFile(__DIR__ . DS . 'vendor' . DS . 'doctrine' . DS . 'orm' . DS . 'lib' . DS . 'Doctrine' . DS . 'ORM' . DS . 'Mapping' . DS . 'Driver' . DS . 'DoctrineAnnotations.php'); + +$driver = new Doctrine\ORM\Mapping\Driver\AnnotationDriver( + new Doctrine\Common\Annotations\AnnotationReader(), + array(__DIR__ . DS . 'src' . DS . 'Orcamentos' . DS . 'Model') +); +$config->setMetadataDriverImpl($driver); +$config->setMetadataCacheImpl($cache); diff --git a/composer.json b/composer.json index 2b275dd..caab39a 100644 --- a/composer.json +++ b/composer.json @@ -1,31 +1,31 @@ { - "name": "eminetto/silex-sample", - "description": "Silex sample", - "require": { - "php": ">=5.3.3", - "silex/silex": "1.0.*", - "symfony/http-kernel": "*", - "symfony/browser-kit": "*", - "symfony/console": "*", - "doctrine/dbal": "*", - "doctrine/orm": "*", - "twig/twig": ">=1.8,<2.0-dev", - "intervention/image": "dev-master", - "symfony/twig-bridge": "2.1.*", - "swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev", - "dflydev/doctrine-orm-service-provider": "1.0.*@dev", - "zendframework/zend-crypt": "*", - "pagerfanta/pagerfanta": "1.0.*@dev" - }, - "require-dev": { - "sebastian/phpcpd": "*", - "phpunit/phpunit": "*", - "mockery/mockery": "dev-master@dev" - }, - "minimum-stability": "dev", - "autoload": { - "psr-0": { - "Orcamentos\\": "src/" - } - } + "name": "coderockr/orcamentos", + "description": "Aplicativo de gerenciamento de Orçamentos", + "require": { + "php": ">=5.3.3", + "silex/silex": "1.0.*", + "symfony/http-kernel": "*", + "symfony/browser-kit": "*", + "symfony/console": "*", + "doctrine/dbal": "*", + "doctrine/orm": "*", + "dflydev/doctrine-orm-service-provider": "1.0.*@dev", + "twig/twig": ">=1.8,<2.0-dev", + "symfony/twig-bridge": "2.1.*", + "intervention/image": "dev-master", + "swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev", + "zendframework/zend-crypt": "*", + "pagerfanta/pagerfanta": "1.0.*@dev" + }, + "require-dev": { + "phpunit/phpunit": "*", + "mockery/mockery": "dev-master@dev", + "sebastian/phpcpd": "*" + }, + "autoload": { + "psr-4": { + "Orcamentos\\": "src/Orcamentos" + } + }, + "minimum-stability": "dev" } From 38b87428314051241fa76a4fddd03f6ffb140706 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Thu, 7 Aug 2014 21:17:05 -0300 Subject: [PATCH 03/10] Implementando migrations (#66) --- bin/orcamentos | 15 +--- bin/orcamentos.php | 98 ++++++++++++++++++++++++++ bootstrap.php | 29 -------- cli-config.php | 56 --------------- composer.json | 9 +-- migrations.yml | 4 ++ migrations/Version20140807204731.php | 77 ++++++++++++++++++++ phpunit.xml | 25 ++++--- phpunit_bootstrap.php | 6 -- src/Orcamentos/Model/Client.php | 5 +- src/Orcamentos/Model/Company.php | 10 +-- src/Orcamentos/Model/Plan.php | 17 ++++- src/Orcamentos/Model/PrivateNote.php | 5 +- src/Orcamentos/Model/Project.php | 18 ++--- src/Orcamentos/Model/Quote.php | 16 ++--- src/Orcamentos/Model/Resource.php | 44 +----------- src/Orcamentos/Model/ResourceQuote.php | 2 +- src/Orcamentos/Model/Share.php | 6 +- src/Orcamentos/Model/ShareNote.php | 14 +--- src/Orcamentos/Model/Type.php | 30 ++++---- src/Orcamentos/Model/User.php | 2 +- src/Orcamentos/Model/View.php | 2 +- 22 files changed, 260 insertions(+), 230 deletions(-) create mode 100644 bin/orcamentos.php delete mode 100644 bootstrap.php delete mode 100644 cli-config.php create mode 100644 migrations.yml create mode 100644 migrations/Version20140807204731.php delete mode 100644 phpunit_bootstrap.php diff --git a/bin/orcamentos b/bin/orcamentos index b999f3e..66b33a0 100755 --- a/bin/orcamentos +++ b/bin/orcamentos @@ -1,17 +1,4 @@ #!/usr/bin/env php setHelperSet(include 'cli-config.php'); -$application->add(new Orcamentos\Console\InitializeCommand); -$application->add(new Orcamentos\Console\ResetPasswordCommand); - -ConsoleRunner::addCommands($application); - -$application->run(); +include "orcamentos.php"; diff --git a/bin/orcamentos.php b/bin/orcamentos.php new file mode 100644 index 0000000..5e38ba1 --- /dev/null +++ b/bin/orcamentos.php @@ -0,0 +1,98 @@ +setProxyDir(sys_get_temp_dir() . '/' . md5(__DIR__)); +$config->setProxyNamespace('Proxies'); +$config->setAutoGenerateProxyClasses(true); +$config->setMetadataDriverImpl($driver); +$config->setMetadataCacheImpl($cache); + +// EntityManager +$em = EntityManager::create($configValues['db.options'], $config); + +// Console +$console = new ConsoleApplication('Gerenciamento de Orçamentos', '1.0.0'); +$console->setCatchExceptions(true); +$console->setHelperSet(new HelperSet([ + new ConnectionHelper($em->getConnection()), + new EntityManagerHelper($em), + $console->getHelperSet()->get('dialog'), + $console->getHelperSet()->get('progress'), + $console->getHelperSet()->get('table'), + new FormatterHelper(), + new DebugFormatterHelper(), + new ProcessHelper(), + new QuestionHelper() +])); + +$console->addCommands(array( + // DBAL Commands + new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(), + new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(), + + // ORM Commands + new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(), + new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(), + new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(), + new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(), + new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(), + new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(), + new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(), + new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(), + new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(), + new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(), + new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(), + new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(), + new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(), + new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(), + + // Migrations Commands + new \Doctrine\DBAL\Migrations\Tools\Console\Command\DiffCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\ExecuteCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\GenerateCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\LatestCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\MigrateCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\StatusCommand(), + new \Doctrine\DBAL\Migrations\Tools\Console\Command\VersionCommand(), + + // Orcamentos Commands + new Orcamentos\Console\InitializeCommand(), + new Orcamentos\Console\ResetPasswordCommand() +)); +$console->run(); diff --git a/bootstrap.php b/bootstrap.php deleted file mode 100644 index 61b6e8d..0000000 --- a/bootstrap.php +++ /dev/null @@ -1,29 +0,0 @@ -setQueryCacheImpl($cache); -$config->setProxyDir('/tmp'); -$config->setProxyNamespace('EntityProxy'); -$config->setAutoGenerateProxyClasses(true); - -//mapping (example uses annotations, could be any of XML/YAML or plain PHP) -AnnotationRegistry::registerFile(__DIR__ . DS . 'vendor' . DS . 'doctrine' . DS . 'orm' . DS . 'lib' . DS . 'Doctrine' . DS . 'ORM' . DS . 'Mapping' . DS . 'Driver' . DS . 'DoctrineAnnotations.php'); - -$driver = new Doctrine\ORM\Mapping\Driver\AnnotationDriver( - new Doctrine\Common\Annotations\AnnotationReader(), - array(__DIR__ . DS . 'src' . DS . 'Orcamentos' . DS . 'Model') -); -$config->setMetadataDriverImpl($driver); -$config->setMetadataCacheImpl($cache); diff --git a/cli-config.php b/cli-config.php deleted file mode 100644 index 9ee19e4..0000000 --- a/cli-config.php +++ /dev/null @@ -1,56 +0,0 @@ -add('Orcamentos', __DIR__.'/src'); - -$configValues = require __DIR__ . '/config/config.php'; - -use Doctrine\ORM\Tools\Setup; -use Doctrine\ORM\EntityManager; -use Doctrine\Common\Annotations\AnnotationRegistry; -use Symfony\Component\Console\Helper\DebugFormatterHelper; -use Symfony\Component\Console\Helper\ProcessHelper; -use Symfony\Component\Console\Helper\QuestionHelper; -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Helper\FormatterHelper; -use Symfony\Component\Console\Helper\DialogHelper; -use Symfony\Component\Console\Helper\ProgressHelper; -use Symfony\Component\Console\Helper\TableHelper; - - -AnnotationRegistry::registerFile(__DIR__.'/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php'); - -// configuration (2) -$config = new \Doctrine\ORM\Configuration(); - -// Proxies (3) -$config->setProxyDir(sys_get_temp_dir() . '/' . md5(__DIR__)); -$config->setProxyNamespace('Proxies'); -$config->setAutoGenerateProxyClasses(true); - -// Driver (4) -$driverImpl = new Doctrine\ORM\Mapping\Driver\AnnotationDriver( - new Doctrine\Common\Annotations\AnnotationReader(), - array(__DIR__.'/src/Orcamentos/Model') -); -$config->setMetadataDriverImpl($driverImpl); - -$cache = new \Doctrine\Common\Cache\ApcCache(); - -$config->setMetadataCacheImpl($cache); - -$connectionOptions = $configValues['db.options']; - -$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config); - -return $helperSet = new \Symfony\Component\Console\Helper\HelperSet(array( - 'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()), - 'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em), - new FormatterHelper(), - new DialogHelper(), - new ProgressHelper(), - new TableHelper(), - new DebugFormatterHelper(), - new ProcessHelper(), - new QuestionHelper() -)); diff --git a/composer.json b/composer.json index caab39a..e225e56 100644 --- a/composer.json +++ b/composer.json @@ -24,8 +24,9 @@ }, "autoload": { "psr-4": { - "Orcamentos\\": "src/Orcamentos" - } - }, - "minimum-stability": "dev" + "Orcamentos\\": "src/Orcamentos", + "Orcamentos\\Migrations\\": "migrations" + } + }, + "minimum-stability": "dev" } diff --git a/migrations.yml b/migrations.yml new file mode 100644 index 0000000..5412e00 --- /dev/null +++ b/migrations.yml @@ -0,0 +1,4 @@ +name: Gerenciamento de Orçamentos - Migrations +migrations_namespace: Orcamentos\Migrations +table_name: doctrine_migration_versions +migrations_directory: migrations diff --git a/migrations/Version20140807204731.php b/migrations/Version20140807204731.php new file mode 100644 index 0000000..b4b2ded --- /dev/null +++ b/migrations/Version20140807204731.php @@ -0,0 +1,77 @@ +abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on 'mysql'."); + + $this->addSql("CREATE TABLE client (id INT AUTO_INCREMENT NOT NULL, company_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, cnpj VARCHAR(14) NOT NULL, corporateName VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, logotype VARCHAR(255) DEFAULT NULL, telephone VARCHAR(255) DEFAULT NULL, responsable VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_C7440455979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE company (id INT AUTO_INCREMENT NOT NULL, plan_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, city VARCHAR(255) DEFAULT NULL, taxes DOUBLE PRECISION NOT NULL, email VARCHAR(255) NOT NULL, telephone VARCHAR(255) NOT NULL, site VARCHAR(255) DEFAULT NULL, logotype VARCHAR(255) DEFAULT NULL, responsable VARCHAR(255) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_4FBF094FE899029B (plan_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE type (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, type VARCHAR(255) NOT NULL, contractType VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE plan (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, price DOUBLE PRECISION DEFAULT NULL, quoteLimit INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE privatenote (id INT AUTO_INCREMENT NOT NULL, project_id INT DEFAULT NULL, user_id INT DEFAULT NULL, note LONGTEXT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_FFBFCCE1166D1F9C (project_id), INDEX IDX_FFBFCCE1A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE project (id INT AUTO_INCREMENT NOT NULL, client_id INT DEFAULT NULL, company_id INT DEFAULT NULL, name VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, tags VARCHAR(255) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_2FB3D0EE19EB6921 (client_id), INDEX IDX_2FB3D0EE979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE quote (id INT AUTO_INCREMENT NOT NULL, project_id INT DEFAULT NULL, dueDate DATETIME DEFAULT NULL, taxes DOUBLE PRECISION NOT NULL, version VARCHAR(150) NOT NULL, status INT NOT NULL, profit DOUBLE PRECISION NOT NULL, commission DOUBLE PRECISION NOT NULL, privateNotes LONGTEXT DEFAULT NULL, deadline LONGTEXT DEFAULT NULL, priceDescription LONGTEXT DEFAULT NULL, paymentType LONGTEXT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_6B71CBF4166D1F9C (project_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE resource (id INT AUTO_INCREMENT NOT NULL, company_id INT DEFAULT NULL, type_id INT DEFAULT NULL, name VARCHAR(150) NOT NULL, cost DOUBLE PRECISION NOT NULL, equipmentLife INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_BC91F416979B1AD6 (company_id), INDEX IDX_BC91F416C54C8C93 (type_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE resourcequote (id INT AUTO_INCREMENT NOT NULL, resource_id INT DEFAULT NULL, quote_id INT DEFAULT NULL, amount DOUBLE PRECISION NOT NULL, value DOUBLE PRECISION NOT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_39741B5589329D25 (resource_id), INDEX IDX_39741B55DB805178 (quote_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE share (id INT AUTO_INCREMENT NOT NULL, quote_id INT DEFAULT NULL, email VARCHAR(150) NOT NULL, hash VARCHAR(255) NOT NULL, shortUrl VARCHAR(255) NOT NULL, sent TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_EF069D5ADB805178 (quote_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE sharenote (id INT AUTO_INCREMENT NOT NULL, share_id INT DEFAULT NULL, note LONGTEXT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_F829661E2AE63FDB (share_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE user (id INT AUTO_INCREMENT NOT NULL, company_id INT DEFAULT NULL, name VARCHAR(150) NOT NULL, email VARCHAR(150) NOT NULL, password VARCHAR(100) NOT NULL, admin TINYINT(1) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_8D93D649E7927C74 (email), INDEX IDX_8D93D649979B1AD6 (company_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("CREATE TABLE view (id INT AUTO_INCREMENT NOT NULL, share_id INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME DEFAULT NULL, INDEX IDX_FEFDAB8E2AE63FDB (share_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB"); + $this->addSql("ALTER TABLE client ADD CONSTRAINT FK_C7440455979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)"); + $this->addSql("ALTER TABLE company ADD CONSTRAINT FK_4FBF094FE899029B FOREIGN KEY (plan_id) REFERENCES plan (id)"); + $this->addSql("ALTER TABLE privatenote ADD CONSTRAINT FK_FFBFCCE1166D1F9C FOREIGN KEY (project_id) REFERENCES project (id)"); + $this->addSql("ALTER TABLE privatenote ADD CONSTRAINT FK_FFBFCCE1A76ED395 FOREIGN KEY (user_id) REFERENCES user (id)"); + $this->addSql("ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EE19EB6921 FOREIGN KEY (client_id) REFERENCES client (id)"); + $this->addSql("ALTER TABLE project ADD CONSTRAINT FK_2FB3D0EE979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)"); + $this->addSql("ALTER TABLE quote ADD CONSTRAINT FK_6B71CBF4166D1F9C FOREIGN KEY (project_id) REFERENCES project (id)"); + $this->addSql("ALTER TABLE resource ADD CONSTRAINT FK_BC91F416979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)"); + $this->addSql("ALTER TABLE resource ADD CONSTRAINT FK_BC91F416C54C8C93 FOREIGN KEY (type_id) REFERENCES type (id)"); + $this->addSql("ALTER TABLE resourcequote ADD CONSTRAINT FK_39741B5589329D25 FOREIGN KEY (resource_id) REFERENCES resource (id)"); + $this->addSql("ALTER TABLE resourcequote ADD CONSTRAINT FK_39741B55DB805178 FOREIGN KEY (quote_id) REFERENCES quote (id)"); + $this->addSql("ALTER TABLE share ADD CONSTRAINT FK_EF069D5ADB805178 FOREIGN KEY (quote_id) REFERENCES quote (id)"); + $this->addSql("ALTER TABLE sharenote ADD CONSTRAINT FK_F829661E2AE63FDB FOREIGN KEY (share_id) REFERENCES share (id)"); + $this->addSql("ALTER TABLE user ADD CONSTRAINT FK_8D93D649979B1AD6 FOREIGN KEY (company_id) REFERENCES company (id)"); + $this->addSql("ALTER TABLE view ADD CONSTRAINT FK_FEFDAB8E2AE63FDB FOREIGN KEY (share_id) REFERENCES share (id)"); + } + + public function down(Schema $schema) + { + $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on 'mysql'."); + + $this->addSql("ALTER TABLE project DROP FOREIGN KEY FK_2FB3D0EE19EB6921"); + $this->addSql("ALTER TABLE client DROP FOREIGN KEY FK_C7440455979B1AD6"); + $this->addSql("ALTER TABLE project DROP FOREIGN KEY FK_2FB3D0EE979B1AD6"); + $this->addSql("ALTER TABLE resource DROP FOREIGN KEY FK_BC91F416979B1AD6"); + $this->addSql("ALTER TABLE user DROP FOREIGN KEY FK_8D93D649979B1AD6"); + $this->addSql("ALTER TABLE resource DROP FOREIGN KEY FK_BC91F416C54C8C93"); + $this->addSql("ALTER TABLE company DROP FOREIGN KEY FK_4FBF094FE899029B"); + $this->addSql("ALTER TABLE privatenote DROP FOREIGN KEY FK_FFBFCCE1166D1F9C"); + $this->addSql("ALTER TABLE quote DROP FOREIGN KEY FK_6B71CBF4166D1F9C"); + $this->addSql("ALTER TABLE resourcequote DROP FOREIGN KEY FK_39741B55DB805178"); + $this->addSql("ALTER TABLE share DROP FOREIGN KEY FK_EF069D5ADB805178"); + $this->addSql("ALTER TABLE resourcequote DROP FOREIGN KEY FK_39741B5589329D25"); + $this->addSql("ALTER TABLE sharenote DROP FOREIGN KEY FK_F829661E2AE63FDB"); + $this->addSql("ALTER TABLE view DROP FOREIGN KEY FK_FEFDAB8E2AE63FDB"); + $this->addSql("ALTER TABLE privatenote DROP FOREIGN KEY FK_FFBFCCE1A76ED395"); + $this->addSql("DROP TABLE client"); + $this->addSql("DROP TABLE company"); + $this->addSql("DROP TABLE type"); + $this->addSql("DROP TABLE plan"); + $this->addSql("DROP TABLE privatenote"); + $this->addSql("DROP TABLE project"); + $this->addSql("DROP TABLE quote"); + $this->addSql("DROP TABLE resource"); + $this->addSql("DROP TABLE resourcequote"); + $this->addSql("DROP TABLE share"); + $this->addSql("DROP TABLE sharenote"); + $this->addSql("DROP TABLE user"); + $this->addSql("DROP TABLE view"); + } +} diff --git a/phpunit.xml b/phpunit.xml index 08db8c0..9d85f71 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -7,19 +7,21 @@ convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" - syntaxCheck="false" - bootstrap="phpunit_bootstrap.php" -> - + syntaxCheck="false"> + + + + + - - src/ + + ./tests/ - - + + ./src/ @@ -29,7 +31,8 @@ - + - \ No newline at end of file + diff --git a/phpunit_bootstrap.php b/phpunit_bootstrap.php deleted file mode 100644 index d60316a..0000000 --- a/phpunit_bootstrap.php +++ /dev/null @@ -1,6 +0,0 @@ -price = $price; } + + public function setDescription($description) + { + $this->description = $description; + } + + public function getDescription() + { + return $this->description; + } + } diff --git a/src/Orcamentos/Model/PrivateNote.php b/src/Orcamentos/Model/PrivateNote.php index dee62ea..e5947da 100644 --- a/src/Orcamentos/Model/PrivateNote.php +++ b/src/Orcamentos/Model/PrivateNote.php @@ -2,11 +2,10 @@ namespace Orcamentos\Model; use Doctrine\ORM\Mapping as ORM; -use DateTime; /** * @ORM\Entity - * @ORM\Table(name="PrivateNote") + * @ORM\Table(name="privatenote") */ class PrivateNote extends Entity { @@ -28,7 +27,7 @@ class PrivateNote extends Entity /** * @ORM\Column(type="text", nullable=true) * - * @var text + * @var string */ private $note; diff --git a/src/Orcamentos/Model/Project.php b/src/Orcamentos/Model/Project.php index cca4181..c4cc143 100644 --- a/src/Orcamentos/Model/Project.php +++ b/src/Orcamentos/Model/Project.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="Project") + * @ORM\Table(name="project") */ class Project extends Entity { @@ -20,7 +20,7 @@ class Project extends Entity /** * @ORM\Column(type="text", nullable=true) * - * @var text + * @var string */ private $description; @@ -48,14 +48,14 @@ class Project extends Entity /** * @ORM\OneToMany(targetEntity="Quote", mappedBy="project", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $quoteCollection; /** * @ORM\OneToMany(targetEntity="PrivateNote", mappedBy="project", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * @ORM\OrderBy({"created" = "DESC"}) - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $privateNotesCollection; @@ -93,16 +93,6 @@ public function setDescription($description) { return $this->description = $description; } - - public function getClientNotes() - { - return $this->clientNotes; - } - - public function setClientNotes($clientNotes) - { - return $this->clientNotes = $clientNotes; - } public function getTags() { diff --git a/src/Orcamentos/Model/Quote.php b/src/Orcamentos/Model/Quote.php index 8f6294d..02c3d6a 100644 --- a/src/Orcamentos/Model/Quote.php +++ b/src/Orcamentos/Model/Quote.php @@ -6,13 +6,13 @@ /** * @ORM\Entity - * @ORM\Table(name="Quote") + * @ORM\Table(name="quote") */ class Quote extends Entity { /** * @ORM\Column(type="datetime",nullable=true) - * @var datetime + * @var \DateTime */ protected $dueDate; @@ -54,28 +54,28 @@ class Quote extends Entity /** * @ORM\Column(type="text",nullable=true) * - * @var text + * @var string */ private $privateNotes; /** * @ORM\Column(type="text",nullable=true) * - * @var text + * @var string */ private $deadline; /** * @ORM\Column(type="text",nullable=true) * - * @var text + * @var string */ private $priceDescription; /** * @ORM\Column(type="text",nullable=true) * - * @var text + * @var string */ private $paymentType; @@ -89,14 +89,14 @@ class Quote extends Entity /** * @ORM\OneToMany(targetEntity="ResourceQuote", mappedBy="quote", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $resourceQuoteCollection; /** * @ORM\OneToMany(targetEntity="Share", mappedBy="quote", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $shareCollection; diff --git a/src/Orcamentos/Model/Resource.php b/src/Orcamentos/Model/Resource.php index 213ba62..56156a2 100644 --- a/src/Orcamentos/Model/Resource.php +++ b/src/Orcamentos/Model/Resource.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="Resource") + * @ORM\Table(name="resource") */ class Resource extends Entity { @@ -47,7 +47,7 @@ class Resource extends Entity /** * @ORM\OneToMany(targetEntity="ResourceQuote", mappedBy="resource", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $resourceQuoteCollection; @@ -95,46 +95,6 @@ public function setCompany($company) { return $this->company = $company; } - - public function getPrivateNotes() - { - return $this->privateNotes; - } - - public function setPrivateNotes($privateNotes) - { - return $this->privateNotes = $privateNotes; - } - - public function getDescription() - { - return $this->description; - } - - public function setDescription($description) - { - return $this->description = $description; - } - - public function getClientNotes() - { - return $this->clientNotes; - } - - public function setClientNotes($clientNotes) - { - return $this->clientNotes = $clientNotes; - } - - public function getTags() - { - return $this->tags; - } - - public function setTags($tags) - { - return $this->tags = $tags; - } public function getType() { diff --git a/src/Orcamentos/Model/ResourceQuote.php b/src/Orcamentos/Model/ResourceQuote.php index 6c84169..7419f48 100644 --- a/src/Orcamentos/Model/ResourceQuote.php +++ b/src/Orcamentos/Model/ResourceQuote.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="ResourceQuote") + * @ORM\Table(name="resourcequote") */ class ResourceQuote extends Entity { diff --git a/src/Orcamentos/Model/Share.php b/src/Orcamentos/Model/Share.php index 377bfef..178e7f4 100644 --- a/src/Orcamentos/Model/Share.php +++ b/src/Orcamentos/Model/Share.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="Share") + * @ORM\Table(name="share") */ class Share extends Entity { @@ -47,14 +47,14 @@ class Share extends Entity /** * @ORM\OneToMany(targetEntity="View", mappedBy="share", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $viewCollection; /** * @ORM\OneToMany(targetEntity="ShareNote", mappedBy="share", cascade={"all"}, orphanRemoval=true, fetch="LAZY") * @ORM\OrderBy({"created" = "DESC"}) - * @var Doctrine\Common\Collections\Collection + * @var \Doctrine\Common\Collections\Collection */ protected $shareNotesCollection; diff --git a/src/Orcamentos/Model/ShareNote.php b/src/Orcamentos/Model/ShareNote.php index ff3ac63..9769d25 100644 --- a/src/Orcamentos/Model/ShareNote.php +++ b/src/Orcamentos/Model/ShareNote.php @@ -2,11 +2,10 @@ namespace Orcamentos\Model; use Doctrine\ORM\Mapping as ORM; -use DateTime; /** * @ORM\Entity - * @ORM\Table(name="ShareNote") + * @ORM\Table(name="sharenote") */ class ShareNote extends Entity { @@ -20,7 +19,7 @@ class ShareNote extends Entity /** * @ORM\Column(type="text", nullable=true) * - * @var text + * @var string */ private $note; @@ -49,13 +48,4 @@ public function setNote($note) return $this->note = $note; } - public function getShareNotesCollection() - { - return $this->shareNotesCollection; - } - - public function setShareNotesCollection($shareNotesCollection) - { - return $this->shareNotesCollection = $shareNotesCollection; - } } diff --git a/src/Orcamentos/Model/Type.php b/src/Orcamentos/Model/Type.php index a9417d3..f36f6d8 100644 --- a/src/Orcamentos/Model/Type.php +++ b/src/Orcamentos/Model/Type.php @@ -1,18 +1,20 @@ -name; } - + public function setName($name) { return $this->name = filter_var($name, FILTER_SANITIZE_STRING); diff --git a/src/Orcamentos/Model/User.php b/src/Orcamentos/Model/User.php index e7952f3..f4ba465 100644 --- a/src/Orcamentos/Model/User.php +++ b/src/Orcamentos/Model/User.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="User") + * @ORM\Table(name="user") */ class User extends Entity { diff --git a/src/Orcamentos/Model/View.php b/src/Orcamentos/Model/View.php index 1892eb3..1463be6 100644 --- a/src/Orcamentos/Model/View.php +++ b/src/Orcamentos/Model/View.php @@ -5,7 +5,7 @@ /** * @ORM\Entity - * @ORM\Table(name="View") + * @ORM\Table(name="view") */ class View extends Entity { From 8677ead24bab3aa2d00867a23be6f3918ca7cb36 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Mon, 11 Aug 2014 20:37:39 -0300 Subject: [PATCH 04/10] Organizando migrations --- bin/orcamentos.php | 24 +++++++------------ composer.json | 9 ++++--- migrations.yml | 2 +- .../migrations}/Version20140807204731.php | 0 4 files changed, 13 insertions(+), 22 deletions(-) rename {migrations => src/Orcamentos/migrations}/Version20140807204731.php (100%) diff --git a/bin/orcamentos.php b/bin/orcamentos.php index 5e38ba1..2c657af 100644 --- a/bin/orcamentos.php +++ b/bin/orcamentos.php @@ -31,7 +31,8 @@ ); // Doctrine cache -$cache = new \Doctrine\Common\Cache\ApcCache(); +$configCache = ucwords(strtolower($configValues['db.options']['cache'])); +$cache = new \ReflectionClass("\\Doctrine\\Common\\Cache\\{$configCache}Cache"); // Doctrine $config = new Configuration(); @@ -41,7 +42,7 @@ $config->setProxyNamespace('Proxies'); $config->setAutoGenerateProxyClasses(true); $config->setMetadataDriverImpl($driver); -$config->setMetadataCacheImpl($cache); +$config->setMetadataCacheImpl($cache->newInstance()); // EntityManager $em = EntityManager::create($configValues['db.options'], $config); @@ -50,11 +51,11 @@ $console = new ConsoleApplication('Gerenciamento de Orçamentos', '1.0.0'); $console->setCatchExceptions(true); $console->setHelperSet(new HelperSet([ - new ConnectionHelper($em->getConnection()), - new EntityManagerHelper($em), - $console->getHelperSet()->get('dialog'), - $console->getHelperSet()->get('progress'), - $console->getHelperSet()->get('table'), + 'db' => new ConnectionHelper($em->getConnection()), + 'em' => new EntityManagerHelper($em), + 'dialog' => $console->getHelperSet()->get('dialog'), + 'progress' => $console->getHelperSet()->get('progress'), + 'table' => $console->getHelperSet()->get('table'), new FormatterHelper(), new DebugFormatterHelper(), new ProcessHelper(), @@ -62,25 +63,16 @@ ])); $console->addCommands(array( - // DBAL Commands - new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(), - new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(), - // ORM Commands new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(), new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(), new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(), - new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(), - new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(), - new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(), new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(), new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(), new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(), new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(), new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(), new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(), - new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(), - new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(), // Migrations Commands new \Doctrine\DBAL\Migrations\Tools\Console\Command\DiffCommand(), diff --git a/composer.json b/composer.json index e225e56..caab39a 100644 --- a/composer.json +++ b/composer.json @@ -24,9 +24,8 @@ }, "autoload": { "psr-4": { - "Orcamentos\\": "src/Orcamentos", - "Orcamentos\\Migrations\\": "migrations" - } - }, - "minimum-stability": "dev" + "Orcamentos\\": "src/Orcamentos" + } + }, + "minimum-stability": "dev" } diff --git a/migrations.yml b/migrations.yml index 5412e00..cb15349 100644 --- a/migrations.yml +++ b/migrations.yml @@ -1,4 +1,4 @@ name: Gerenciamento de Orçamentos - Migrations migrations_namespace: Orcamentos\Migrations table_name: doctrine_migration_versions -migrations_directory: migrations +migrations_directory: src/Orcamentos/Migrations diff --git a/migrations/Version20140807204731.php b/src/Orcamentos/migrations/Version20140807204731.php similarity index 100% rename from migrations/Version20140807204731.php rename to src/Orcamentos/migrations/Version20140807204731.php From e3e41f8e0b84ec245843d8779c459bf3e32a0be0 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Mon, 11 Aug 2014 21:53:53 -0300 Subject: [PATCH 05/10] Alterando comando de inicializado do banco para migrations --- src/Orcamentos/Console/InitializeCommand.php | 32 ++++++------------- .../Console/ResetPasswordCommand.php | 12 ++----- 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/src/Orcamentos/Console/InitializeCommand.php b/src/Orcamentos/Console/InitializeCommand.php index d5b2647..8d6fbdd 100644 --- a/src/Orcamentos/Console/InitializeCommand.php +++ b/src/Orcamentos/Console/InitializeCommand.php @@ -2,23 +2,17 @@ namespace Orcamentos\Console; +use Orcamentos\Model\EquipmentType; +use Orcamentos\Model\HumanType; +use Orcamentos\Model\Plan; +use Orcamentos\Model\ServiceType; +use Orcamentos\Service\Company as CompanyService; +use Orcamentos\Service\User as UserService; use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; - use Symfony\Component\Console\Question\Question; -use Orcamentos\Service\Company as CompanyService; -use Orcamentos\Service\User as UserService; -use Symfony\Component\Console\Input\ArrayInput; - -use Orcamentos\Model\EquipmentType; -use Orcamentos\Model\ServiceType; -use Orcamentos\Model\HumanType; -use Orcamentos\Model\Plan; - class InitializeCommand extends Command { @@ -27,22 +21,14 @@ class InitializeCommand extends Command protected function configure() { - $this - ->setName('orcamentos:initialize') + $this->setName('orcamentos:initialize') ->setDescription('Initialize the database and insert the initial data'); } protected function execute(InputInterface $input, OutputInterface $output) { - - - try { - $command = $this->getApplication()->find('orm:schema-tool:create'); - $returnCode = $command->run($input, $output); - } catch (\Exception $e) { - $output->writeln("Your database alread have the schema!"); - } - + $command = $this->getApplication()->find('migrations:migrate'); + $command->run($input, $output); $this->input = $input; $this->output = $output; diff --git a/src/Orcamentos/Console/ResetPasswordCommand.php b/src/Orcamentos/Console/ResetPasswordCommand.php index e574b0c..5b1cc27 100644 --- a/src/Orcamentos/Console/ResetPasswordCommand.php +++ b/src/Orcamentos/Console/ResetPasswordCommand.php @@ -3,17 +3,12 @@ namespace Orcamentos\Console; use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; - -use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Question\ChoiceQuestion; +use Symfony\Component\Console\Question\Question; use Zend\Crypt\Password\Bcrypt; -use Orcamentos\Service\User as UserService; - class ResetPasswordCommand extends Command { @@ -22,14 +17,12 @@ class ResetPasswordCommand extends Command protected function configure() { - $this - ->setName('orcamentos:resetpwd') + $this->setName('orcamentos:resetpwd') ->setDescription('Reset user password'); } protected function execute(InputInterface $input, OutputInterface $output) { - $this->input = $input; $this->output = $output; @@ -75,7 +68,6 @@ protected function execute(InputInterface $input, OutputInterface $output) $this->getEm()->flush(); $output->writeln("The password has been successfully changed"); - } private function askForPassword() From 2492bb48d8a55587b334541e47ce69dd289853a3 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Mon, 11 Aug 2014 21:54:17 -0300 Subject: [PATCH 06/10] =?UTF-8?q?Adicionando=20descri=C3=A7=C3=A3o=20de=20?= =?UTF-8?q?como=20utilizar=20migrations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 97 +++++++++++++++++++++++++++++++++++++++----------- migrations.yml | 2 +- 2 files changed, 78 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 8527a27..626a984 100644 --- a/README.md +++ b/README.md @@ -2,26 +2,29 @@ ### Configure o Apache VirtualHost - - DocumentRoot "/" #ver instruções abaixo - ServerName orcamentos.dev - - /"> - Options Indexes Multiviews FollowSymLinks - AllowOverride All - Order allow,deny - Allow from all - - - RewriteEngine On - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule !\.(js|ico|gif|jpg|png|css|htm|html|txt|mp3)$ index.php - - +```apache + + DocumentRoot "/" #ver instruções abaixo + ServerName orcamentos.dev + + /"> + Options Indexes Multiviews FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule !\.(js|ico|gif|jpg|png|css|htm|html|txt|mp3)$ index.php + + +``` É preciso criar o alias para o endereço _orcamentos.dev_ no seu /etc/hosts (Linux ou Mac) -`127.0.0.1 orcamentos.dev` +```ini +127.0.0.1 orcamentos.dev +``` Para criação de um virtual host no **Windows**, siga as instruções encontradas [neste link](http://www.emersoncarvalho.com/web/configurando-virtual-hosts-no-windows/). @@ -33,11 +36,41 @@ Através da linha de comando, acessar sua pasta de projetos e clonar com `git cl Acessar a pasta criada `cd ` e atualizar o Composer fornecido: -`php composer.phar self-update` +```bash +$ php composer.phar self-update +``` Instalar as dependências do projeto: -`php composer.phar update` +```bash +$ php composer.phar update +``` + +### Linhas de comando + +Para facilicar algumas tarefas do projeto foi criado uma interface de linha de comando que pode ser executada de duas formas: + +```bash +$ ./bin/orcamentos +``` + +ou + +```bash +$ php bin/orcamentos +``` + +Executando o comando acima será exibido os comandos disponiveis, para executar algum comando disponível basta exectuar: + +```bash +$ ./bin/orcamentos comando +``` + +ou + +```bash +$ php bin/orcamentos comando +``` ### Configuração @@ -47,7 +80,31 @@ Basta duplicar o arquivo `config/config.php.sample` para `config/config.php` e m O projeto usa o Doctrine, então é preciso criar a base de dados (de acordo com as configurações do config.php) e executar: -`./bin/orcamentos orcamentos:initialize` +```bash +$ ./bin/orcamentos orcamentos:initialize +``` + +**OBS:** O comando acima deve ser executado apenas para criação do projeto. + +### Atualizando banco de dados + +Para facilitar a evolução do banco foi utilizado [Doctrine Migrations](http://www.doctrine-project.org/projects/migrations.html) uma ferramenta de versionamento para banco de dados. + +Para efetuar qualquer alteração no banco de dados, basta criar e/ou alterar e/ou remover qualquer atributos e/ou entidade presente na pasta `src/Orcamentos/Model` e executar: + +```bash +$ ./bin/orcamentos migrations:diff +``` + +Esse comanda irá comprar os mapeamentos com banco configura e gerar um novo arquivo em `src/Orcamentos/Migrations` com essas alterações. + +Para aplicar as diferenças ao banco basta executar: + +```bash +$ ./bin/orcamentos migrations:migrate +``` + +Para outros comandos ou dúvida basta acessar a documentação do [Doctrine Migrations](http://www.doctrine-project.org/projects/migrations.html). ### Exemplo de uso diff --git a/migrations.yml b/migrations.yml index cb15349..9e285f7 100644 --- a/migrations.yml +++ b/migrations.yml @@ -1,4 +1,4 @@ -name: Gerenciamento de Orçamentos - Migrations +name: Gerenciamento de Orcamentos - Migrations migrations_namespace: Orcamentos\Migrations table_name: doctrine_migration_versions migrations_directory: src/Orcamentos/Migrations From 2ab2397f735372515765370ed9a374f0dfcab4b1 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Mon, 11 Aug 2014 22:29:12 -0300 Subject: [PATCH 07/10] =?UTF-8?q?Adicionando=20depend=C3=AAncia=20do=20doc?= =?UTF-8?q?trine=20migrations=20removida=20no=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index caab39a..0d36eac 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,7 @@ "symfony/console": "*", "doctrine/dbal": "*", "doctrine/orm": "*", + "doctrine/migrations": "1.0.*@dev", "dflydev/doctrine-orm-service-provider": "1.0.*@dev", "twig/twig": ">=1.8,<2.0-dev", "symfony/twig-bridge": "2.1.*", From c2bedd5b2ede6049cd6aec5f47a47d08b911ced4 Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Wed, 20 Aug 2014 11:43:20 -0300 Subject: [PATCH 08/10] Removendo arquivos .sql --- .gitignore | 1 + docs/30_04_14_backup.sql | 434 ------------------------------- docs/orcamento_17_04_2014.sql | 434 ------------------------------- docs/orcamentos_diagram.asta.bak | Bin 28328 -> 0 bytes 4 files changed, 1 insertion(+), 868 deletions(-) delete mode 100644 docs/30_04_14_backup.sql delete mode 100644 docs/orcamento_17_04_2014.sql delete mode 100644 docs/orcamentos_diagram.asta.bak diff --git a/.gitignore b/.gitignore index fd06584..372977c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ config/config.php composer.lock nbproject .idea +orcamentos_diagram.asta.bak diff --git a/docs/30_04_14_backup.sql b/docs/30_04_14_backup.sql deleted file mode 100644 index 3f1d9f1..0000000 --- a/docs/30_04_14_backup.sql +++ /dev/null @@ -1,434 +0,0 @@ --- MySQL dump 10.13 Distrib 5.5.35, for debian-linux-gnu (i686) --- --- Host: localhost Database: orcamentos --- ------------------------------------------------------ --- Server version 5.5.35-0ubuntu0.12.04.2 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `Client` --- - -DROP TABLE IF EXISTS `Client`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Client` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `cnpj` varchar(14) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `logotype` varchar(255) DEFAULT NULL, - `telephone` varchar(255) DEFAULT NULL, - `responsable` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `UNIQ_C0E80163C8C6906B` (`cnpj`), - KEY `IDX_C0E80163979B1AD6` (`company_id`), - CONSTRAINT `FK_C0E80163979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Client` --- - -LOCK TABLES `Client` WRITE; -/*!40000 ALTER TABLE `Client` DISABLE KEYS */; -INSERT INTO `Client` VALUES (1,1,'2014-04-01 12:21:19',NULL,'Mateus','7779998881','mateus@coderockr.com','mateus_logo.jpg','(49) 9978-2269','asdasdsdsasdasdadsadsaaaa'),(3,1,'2014-04-10 14:24:49',NULL,'Mateus','885522','nene@empresa.com','a8902045818f2506ea91ec42bc49321a.jpg','(49) 9978-2269','Vacilao'),(10,1,'2014-04-29 15:35:17',NULL,'Cliente2','','email@empresa.com','0df59e39755c02bb377f132751379e1d.jpg','','naotem'); -/*!40000 ALTER TABLE `Client` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ClientNote` --- - -DROP TABLE IF EXISTS `ClientNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ClientNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `client_id` int(11) DEFAULT NULL, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_4A1DDCA419EB6921` (`client_id`), - KEY `IDX_4A1DDCA4DB805178` (`quote_id`), - CONSTRAINT `FK_4A1DDCA419EB6921` FOREIGN KEY (`client_id`) REFERENCES `Client` (`id`), - CONSTRAINT `FK_4A1DDCA4DB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ClientNote` --- - -LOCK TABLES `ClientNote` WRITE; -/*!40000 ALTER TABLE `ClientNote` DISABLE KEYS */; -/*!40000 ALTER TABLE `ClientNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Company` --- - -DROP TABLE IF EXISTS `Company`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Company` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `site` varchar(255) DEFAULT NULL, - `logotype` varchar(255) NOT NULL, - `responsable` varchar(255) DEFAULT NULL, - `telephone` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Company` --- - -LOCK TABLES `Company` WRITE; -/*!40000 ALTER TABLE `Company` DISABLE KEYS */; -INSERT INTO `Company` VALUES (1,'2014-04-01 12:20:01',NULL,'Coderockr','www.corderock.com','fe1cd280e01130b85c000d3724b43f7b.jpg','Xornas','(49) 9978-2269'); -/*!40000 ALTER TABLE `Company` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `PrivateNote` --- - -DROP TABLE IF EXISTS `PrivateNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `PrivateNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `project_id` int(11) DEFAULT NULL, - `user_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_D911EC08166D1F9C` (`project_id`), - KEY `IDX_D911EC08A76ED395` (`user_id`), - CONSTRAINT `FK_D911EC08166D1F9C` FOREIGN KEY (`project_id`) REFERENCES `Project` (`id`), - CONSTRAINT `FK_D911EC08A76ED395` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `PrivateNote` --- - -LOCK TABLES `PrivateNote` WRITE; -/*!40000 ALTER TABLE `PrivateNote` DISABLE KEYS */; -INSERT INTO `PrivateNote` VALUES (4,4,1,'2014-04-17 09:47:50',NULL,'aaaaa'); -/*!40000 ALTER TABLE `PrivateNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Project` --- - -DROP TABLE IF EXISTS `Project`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Project` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `client_id` int(11) DEFAULT NULL, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `tags` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_E00EE97219EB6921` (`client_id`), - KEY `IDX_E00EE972979B1AD6` (`company_id`), - CONSTRAINT `FK_E00EE97219EB6921` FOREIGN KEY (`client_id`) REFERENCES `Client` (`id`), - CONSTRAINT `FK_E00EE972979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Project` --- - -LOCK TABLES `Project` WRITE; -/*!40000 ALTER TABLE `Project` DISABLE KEYS */; -INSERT INTO `Project` VALUES (1,1,1,'2014-04-01 12:22:18',NULL,'Projeto novo','Descricao','app,novo,teste'),(3,1,1,'2014-04-10 14:30:20',NULL,'Movelsul 2014','sadasds','2,nova'),(4,1,1,'2014-04-15 08:45:09',NULL,'Projeto do mateus','hehehe','novo, 2'),(5,3,1,'2014-04-23 17:44:06',NULL,'Yeah','2222','222dd'); -/*!40000 ALTER TABLE `Project` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Quote` --- - -DROP TABLE IF EXISTS `Quote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Quote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `version` varchar(150) NOT NULL, - `status` int(11) NOT NULL, - `privateNotes` longtext, - `project_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_AAB0E4F0166D1F9C` (`project_id`), - CONSTRAINT `FK_AAB0E4F0166D1F9C` FOREIGN KEY (`project_id`) REFERENCES `Project` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Quote` --- - -LOCK TABLES `Quote` WRITE; -/*!40000 ALTER TABLE `Quote` DISABLE KEYS */; -INSERT INTO `Quote` VALUES (1,'2014-04-03 18:42:30',NULL,'versao 1',0,'',NULL),(2,'2014-04-10 17:49:34',NULL,'v2',1,'hehe',3),(15,'2014-04-15 11:10:44',NULL,'1',1,'dasdsaadsdsa',4); -/*!40000 ALTER TABLE `Quote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Resource` --- - -DROP TABLE IF EXISTS `Resource`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Resource` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(150) NOT NULL, - `cost` double NOT NULL, - `type_id` int(11) DEFAULT NULL, - `equipmentLife` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_45E79640979B1AD6` (`company_id`), - KEY `IDX_45E79640C54C8C93` (`type_id`), - CONSTRAINT `FK_45E79640979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`), - CONSTRAINT `FK_45E79640C54C8C93` FOREIGN KEY (`type_id`) REFERENCES `Type` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Resource` --- - -LOCK TABLES `Resource` WRITE; -/*!40000 ALTER TABLE `Resource` DISABLE KEYS */; -INSERT INTO `Resource` VALUES (78,1,'2014-04-15 11:02:54',NULL,'pc',22,2,13),(79,1,'2014-04-15 11:05:51',NULL,'das',21,1,NULL),(80,1,'2014-04-15 11:09:57',NULL,'dd',21,3,NULL),(81,1,'2014-04-15 11:10:23',NULL,'ca',14,3,NULL),(82,1,'2014-04-15 11:11:25',NULL,'xx',41,3,NULL),(107,1,'2014-04-24 16:40:58',NULL,'Teste',31,2,23),(110,1,'2014-04-28 15:27:02',NULL,'Algo',15.6,2,0); -/*!40000 ALTER TABLE `Resource` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ResourceQuote` --- - -DROP TABLE IF EXISTS `ResourceQuote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ResourceQuote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `resource_id` int(11) DEFAULT NULL, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `amount` double NOT NULL, - `value` double NOT NULL, - PRIMARY KEY (`id`), - KEY `IDX_4BCB7FA489329D25` (`resource_id`), - KEY `IDX_4BCB7FA4DB805178` (`quote_id`), - CONSTRAINT `FK_4BCB7FA489329D25` FOREIGN KEY (`resource_id`) REFERENCES `Resource` (`id`), - CONSTRAINT `FK_4BCB7FA4DB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ResourceQuote` --- - -LOCK TABLES `ResourceQuote` WRITE; -/*!40000 ALTER TABLE `ResourceQuote` DISABLE KEYS */; -INSERT INTO `ResourceQuote` VALUES (59,78,15,'2014-04-23 15:35:39',NULL,3111,21),(60,79,15,'2014-04-23 15:35:39',NULL,1,21),(61,80,15,'2014-04-23 15:35:39',NULL,213232,21),(62,82,15,'2014-04-23 15:35:39',NULL,111111,41),(63,78,2,'2014-04-29 15:20:22',NULL,21,22); -/*!40000 ALTER TABLE `ResourceQuote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Share` --- - -DROP TABLE IF EXISTS `Share`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Share` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `email` varchar(150) COLLATE utf8_unicode_ci NOT NULL, - `sent` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `IDX_2EC7B25EDB805178` (`quote_id`), - CONSTRAINT `FK_2EC7B25EDB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Share` --- - -LOCK TABLES `Share` WRITE; -/*!40000 ALTER TABLE `Share` DISABLE KEYS */; -INSERT INTO `Share` VALUES (37,2,'2014-04-29 13:48:20',NULL,'jao@coderockr.com',0),(38,2,'2014-04-29 13:49:08',NULL,'thiago@coderockr.com',0); -/*!40000 ALTER TABLE `Share` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ShareNote` --- - -DROP TABLE IF EXISTS `ShareNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ShareNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `share_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_DAEA4B832AE63FDB` (`share_id`), - CONSTRAINT `FK_DAEA4B832AE63FDB` FOREIGN KEY (`share_id`) REFERENCES `Share` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ShareNote` --- - -LOCK TABLES `ShareNote` WRITE; -/*!40000 ALTER TABLE `ShareNote` DISABLE KEYS */; -/*!40000 ALTER TABLE `ShareNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Type` --- - -DROP TABLE IF EXISTS `Type`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Type` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `contractType` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Type` --- - -LOCK TABLES `Type` WRITE; -/*!40000 ALTER TABLE `Type` DISABLE KEYS */; -INSERT INTO `Type` VALUES (1,'2014-04-08 18:38:15',NULL,'Conta','service',NULL),(2,'2014-04-08 18:43:57',NULL,'Computador','equipment',NULL),(3,'2014-04-08 18:45:25',NULL,'Funcionario','human','CLT'); -/*!40000 ALTER TABLE `Type` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `User` --- - -DROP TABLE IF EXISTS `User`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `User` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(150) NOT NULL, - `email` varchar(150) NOT NULL, - `password` varchar(100) NOT NULL, - `admin` tinyint(1) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `UNIQ_2DA17977E7927C74` (`email`), - KEY `IDX_2DA17977979B1AD6` (`company_id`), - CONSTRAINT `FK_2DA17977979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `User` --- - -LOCK TABLES `User` WRITE; -/*!40000 ALTER TABLE `User` DISABLE KEYS */; -INSERT INTO `User` VALUES (1,1,'2014-04-03 18:31:49',NULL,'User 10','mateus@coderockr.com','$2y$10$b24QlFVVEAxE2Xp/q6d07ud0kS9xEgyHQNB9BpryHpjyz4XpOCOvi',1); -/*!40000 ALTER TABLE `User` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `View` --- - -DROP TABLE IF EXISTS `View`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `View` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `share_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_5ECF04B02AE63FDB` (`share_id`), - CONSTRAINT `FK_5ECF04B02AE63FDB` FOREIGN KEY (`share_id`) REFERENCES `Share` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `View` --- - -LOCK TABLES `View` WRITE; -/*!40000 ALTER TABLE `View` DISABLE KEYS */; -INSERT INTO `View` VALUES (1,NULL,'2014-04-30 14:49:07',NULL); -/*!40000 ALTER TABLE `View` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2014-04-30 19:38:38 diff --git a/docs/orcamento_17_04_2014.sql b/docs/orcamento_17_04_2014.sql deleted file mode 100644 index 59c69e8..0000000 --- a/docs/orcamento_17_04_2014.sql +++ /dev/null @@ -1,434 +0,0 @@ --- MySQL dump 10.13 Distrib 5.5.35, for debian-linux-gnu (i686) --- --- Host: localhost Database: orcamentos --- ------------------------------------------------------ --- Server version 5.5.35-0ubuntu0.12.04.2 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `Client` --- - -DROP TABLE IF EXISTS `Client`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Client` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `cnpj` varchar(14) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `logotype` varchar(255) DEFAULT NULL, - `telephone` varchar(255) DEFAULT NULL, - `responsable` varchar(255) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `UNIQ_C0E80163C8C6906B` (`cnpj`), - KEY `IDX_C0E80163979B1AD6` (`company_id`), - CONSTRAINT `FK_C0E80163979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Client` --- - -LOCK TABLES `Client` WRITE; -/*!40000 ALTER TABLE `Client` DISABLE KEYS */; -INSERT INTO `Client` VALUES (1,1,'2014-04-01 12:21:19',NULL,'Mateus','7779998881','mateus@coderockr.com','mateus_logo.jpg','(49) 9978-2269','asdasdsdsasdasdadsadsaaaa'),(3,1,'2014-04-10 14:24:49',NULL,'Mateus','885522','nene@empresa.com','a8902045818f2506ea91ec42bc49321a.jpg','(49) 9978-2269','Vacilao'); -/*!40000 ALTER TABLE `Client` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ClientNote` --- - -DROP TABLE IF EXISTS `ClientNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ClientNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `client_id` int(11) DEFAULT NULL, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_4A1DDCA419EB6921` (`client_id`), - KEY `IDX_4A1DDCA4DB805178` (`quote_id`), - CONSTRAINT `FK_4A1DDCA419EB6921` FOREIGN KEY (`client_id`) REFERENCES `Client` (`id`), - CONSTRAINT `FK_4A1DDCA4DB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ClientNote` --- - -LOCK TABLES `ClientNote` WRITE; -/*!40000 ALTER TABLE `ClientNote` DISABLE KEYS */; -/*!40000 ALTER TABLE `ClientNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Company` --- - -DROP TABLE IF EXISTS `Company`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Company` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `site` varchar(255) DEFAULT NULL, - `logotype` varchar(255) NOT NULL, - `responsable` varchar(255) DEFAULT NULL, - `telephone` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Company` --- - -LOCK TABLES `Company` WRITE; -/*!40000 ALTER TABLE `Company` DISABLE KEYS */; -INSERT INTO `Company` VALUES (1,'2014-04-01 12:20:01',NULL,'Coderockr','www.corderock.com','f43b298bf1cffe86aceb36f4dbe88675.jpg','Xornas','(49) 3647-1069'); -/*!40000 ALTER TABLE `Company` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `PrivateNote` --- - -DROP TABLE IF EXISTS `PrivateNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `PrivateNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `project_id` int(11) DEFAULT NULL, - `user_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_D911EC08166D1F9C` (`project_id`), - KEY `IDX_D911EC08A76ED395` (`user_id`), - CONSTRAINT `FK_D911EC08166D1F9C` FOREIGN KEY (`project_id`) REFERENCES `Project` (`id`), - CONSTRAINT `FK_D911EC08A76ED395` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `PrivateNote` --- - -LOCK TABLES `PrivateNote` WRITE; -/*!40000 ALTER TABLE `PrivateNote` DISABLE KEYS */; -INSERT INTO `PrivateNote` VALUES (4,4,1,'2014-04-17 09:47:50',NULL,'aaaaa'); -/*!40000 ALTER TABLE `PrivateNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Project` --- - -DROP TABLE IF EXISTS `Project`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Project` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `client_id` int(11) DEFAULT NULL, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `tags` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_E00EE97219EB6921` (`client_id`), - KEY `IDX_E00EE972979B1AD6` (`company_id`), - CONSTRAINT `FK_E00EE97219EB6921` FOREIGN KEY (`client_id`) REFERENCES `Client` (`id`), - CONSTRAINT `FK_E00EE972979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Project` --- - -LOCK TABLES `Project` WRITE; -/*!40000 ALTER TABLE `Project` DISABLE KEYS */; -INSERT INTO `Project` VALUES (1,1,1,'2014-04-01 12:22:18',NULL,'Projeto novo','Descricao','app,novo,teste'),(3,1,1,'2014-04-10 14:30:20',NULL,'Movelsul 2014','sadasds','2,nova'),(4,1,1,'2014-04-15 08:45:09',NULL,'Projeto do mateus','hehehe','novo, 2'); -/*!40000 ALTER TABLE `Project` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Quote` --- - -DROP TABLE IF EXISTS `Quote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Quote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `version` varchar(150) NOT NULL, - `status` int(11) NOT NULL, - `privateNotes` longtext, - `project_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_AAB0E4F0166D1F9C` (`project_id`), - CONSTRAINT `FK_AAB0E4F0166D1F9C` FOREIGN KEY (`project_id`) REFERENCES `Project` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Quote` --- - -LOCK TABLES `Quote` WRITE; -/*!40000 ALTER TABLE `Quote` DISABLE KEYS */; -INSERT INTO `Quote` VALUES (1,'2014-04-03 18:42:30',NULL,'versao 1',0,'',NULL),(2,'2014-04-10 17:49:34',NULL,'v2',1,'hehe',3),(15,'2014-04-15 11:10:44',NULL,'1',1,'',4); -/*!40000 ALTER TABLE `Quote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Resource` --- - -DROP TABLE IF EXISTS `Resource`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Resource` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(150) NOT NULL, - `cost` double NOT NULL, - `type_id` int(11) DEFAULT NULL, - `equipmentLife` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_45E79640979B1AD6` (`company_id`), - KEY `IDX_45E79640C54C8C93` (`type_id`), - CONSTRAINT `FK_45E79640979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`), - CONSTRAINT `FK_45E79640C54C8C93` FOREIGN KEY (`type_id`) REFERENCES `Type` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=83 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Resource` --- - -LOCK TABLES `Resource` WRITE; -/*!40000 ALTER TABLE `Resource` DISABLE KEYS */; -INSERT INTO `Resource` VALUES (78,1,'2014-04-15 11:02:54',NULL,'pc',21,2,13),(79,1,'2014-04-15 11:05:51',NULL,'das',21,1,NULL),(80,1,'2014-04-15 11:09:57',NULL,'dd',21,3,NULL),(81,1,'2014-04-15 11:10:23',NULL,'ca',14,3,NULL),(82,1,'2014-04-15 11:11:25',NULL,'xx',41,3,NULL); -/*!40000 ALTER TABLE `Resource` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ResourceQuote` --- - -DROP TABLE IF EXISTS `ResourceQuote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ResourceQuote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `resource_id` int(11) DEFAULT NULL, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `amount` double NOT NULL, - PRIMARY KEY (`id`), - KEY `IDX_4BCB7FA489329D25` (`resource_id`), - KEY `IDX_4BCB7FA4DB805178` (`quote_id`), - CONSTRAINT `FK_4BCB7FA489329D25` FOREIGN KEY (`resource_id`) REFERENCES `Resource` (`id`), - CONSTRAINT `FK_4BCB7FA4DB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ResourceQuote` --- - -LOCK TABLES `ResourceQuote` WRITE; -/*!40000 ALTER TABLE `ResourceQuote` DISABLE KEYS */; -INSERT INTO `ResourceQuote` VALUES (55,78,15,'2014-04-15 11:32:01',NULL,3111),(56,79,15,'2014-04-15 11:32:01',NULL,1),(57,80,15,'2014-04-15 11:32:01',NULL,213232),(58,82,15,'2014-04-15 11:32:01',NULL,111111); -/*!40000 ALTER TABLE `ResourceQuote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Share` --- - -DROP TABLE IF EXISTS `Share`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Share` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `quote_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `email` varchar(150) COLLATE utf8_unicode_ci NOT NULL, - `sent` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `IDX_2EC7B25EDB805178` (`quote_id`), - CONSTRAINT `FK_2EC7B25EDB805178` FOREIGN KEY (`quote_id`) REFERENCES `Quote` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Share` --- - -LOCK TABLES `Share` WRITE; -/*!40000 ALTER TABLE `Share` DISABLE KEYS */; -INSERT INTO `Share` VALUES (4,15,'2014-04-16 09:12:32',NULL,'mateus@coderockr.com',0),(5,15,'2014-04-16 09:12:32',NULL,'thiago@coderockr.com',0),(6,15,'2014-04-16 09:15:36',NULL,'nene@empresa.com',0),(7,15,'2014-04-16 13:37:30',NULL,'jao@coderockr.com',0); -/*!40000 ALTER TABLE `Share` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `ShareNote` --- - -DROP TABLE IF EXISTS `ShareNote`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ShareNote` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `share_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `note` longtext COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`), - KEY `IDX_DAEA4B832AE63FDB` (`share_id`), - CONSTRAINT `FK_DAEA4B832AE63FDB` FOREIGN KEY (`share_id`) REFERENCES `Share` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `ShareNote` --- - -LOCK TABLES `ShareNote` WRITE; -/*!40000 ALTER TABLE `ShareNote` DISABLE KEYS */; -INSERT INTO `ShareNote` VALUES (12,4,'2014-04-16 11:09:42',NULL,'Eu acho que o funcionario ta ganhando demais'),(13,4,'2014-04-16 11:09:48',NULL,'massa'),(14,5,'2014-04-16 11:17:02',NULL,'ALgo aqui'),(15,7,'2014-04-16 13:38:22',NULL,'Esse computador ta mto caro'),(16,7,'2014-04-16 13:48:37',NULL,'Esquisito'),(17,7,'2014-04-16 13:50:06',NULL,'jumanji'),(18,7,'2014-04-16 13:55:02',NULL,'adasdsaads'),(19,7,'2014-04-16 14:21:51',NULL,'eh nozes'); -/*!40000 ALTER TABLE `ShareNote` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `Type` --- - -DROP TABLE IF EXISTS `Type`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `Type` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `type` varchar(255) COLLATE utf8_unicode_ci NOT NULL, - `contractType` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `Type` --- - -LOCK TABLES `Type` WRITE; -/*!40000 ALTER TABLE `Type` DISABLE KEYS */; -INSERT INTO `Type` VALUES (1,'2014-04-08 18:38:15',NULL,'Conta','service',NULL),(2,'2014-04-08 18:43:57',NULL,'Computador','equipment',NULL),(3,'2014-04-08 18:45:25',NULL,'Funcionario','human','CLT'); -/*!40000 ALTER TABLE `Type` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `User` --- - -DROP TABLE IF EXISTS `User`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `User` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `company_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - `name` varchar(150) NOT NULL, - `email` varchar(150) NOT NULL, - `password` varchar(100) NOT NULL, - `admin` tinyint(1) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `UNIQ_2DA17977E7927C74` (`email`), - KEY `IDX_2DA17977979B1AD6` (`company_id`), - CONSTRAINT `FK_2DA17977979B1AD6` FOREIGN KEY (`company_id`) REFERENCES `Company` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `User` --- - -LOCK TABLES `User` WRITE; -/*!40000 ALTER TABLE `User` DISABLE KEYS */; -INSERT INTO `User` VALUES (1,1,'2014-04-03 18:31:49',NULL,'User 10','mateus@coderockr.com','$2y$10$b24QlFVVEAxE2Xp/q6d07ud0kS9xEgyHQNB9BpryHpjyz4XpOCOvi',1); -/*!40000 ALTER TABLE `User` ENABLE KEYS */; -UNLOCK TABLES; - --- --- Table structure for table `View` --- - -DROP TABLE IF EXISTS `View`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `View` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `share_id` int(11) DEFAULT NULL, - `created` datetime NOT NULL, - `updated` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `IDX_5ECF04B02AE63FDB` (`share_id`), - CONSTRAINT `FK_5ECF04B02AE63FDB` FOREIGN KEY (`share_id`) REFERENCES `Share` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=126 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `View` --- - -LOCK TABLES `View` WRITE; -/*!40000 ALTER TABLE `View` DISABLE KEYS */; -INSERT INTO `View` VALUES (3,NULL,'2014-04-16 09:20:32',NULL),(4,NULL,'2014-04-16 09:20:37',NULL),(5,4,'2014-04-16 09:20:58',NULL),(6,NULL,'2014-04-16 09:26:36',NULL),(7,4,'2014-04-16 09:26:37',NULL),(8,4,'2014-04-16 09:35:25',NULL),(9,4,'2014-04-16 09:40:59',NULL),(10,4,'2014-04-16 09:41:07',NULL),(11,4,'2014-04-16 09:41:17',NULL),(12,4,'2014-04-16 09:42:27',NULL),(13,4,'2014-04-16 09:42:57',NULL),(14,4,'2014-04-16 09:43:30',NULL),(15,4,'2014-04-16 09:44:33',NULL),(16,4,'2014-04-16 09:45:10',NULL),(17,4,'2014-04-16 09:46:20',NULL),(18,4,'2014-04-16 09:46:39',NULL),(19,4,'2014-04-16 09:47:57',NULL),(20,4,'2014-04-16 09:48:18',NULL),(21,4,'2014-04-16 09:48:52',NULL),(22,4,'2014-04-16 09:49:32',NULL),(23,4,'2014-04-16 09:49:57',NULL),(24,4,'2014-04-16 09:50:06',NULL),(25,4,'2014-04-16 09:50:16',NULL),(26,4,'2014-04-16 09:54:52',NULL),(27,4,'2014-04-16 09:55:01',NULL),(28,4,'2014-04-16 09:55:13',NULL),(29,4,'2014-04-16 09:55:20',NULL),(30,4,'2014-04-16 09:55:30',NULL),(31,4,'2014-04-16 09:56:11',NULL),(32,4,'2014-04-16 09:58:05',NULL),(33,4,'2014-04-16 09:59:40',NULL),(34,4,'2014-04-16 09:59:52',NULL),(35,4,'2014-04-16 09:59:58',NULL),(36,4,'2014-04-16 10:01:18',NULL),(37,4,'2014-04-16 10:01:29',NULL),(38,4,'2014-04-16 10:01:42',NULL),(39,4,'2014-04-16 10:02:23',NULL),(40,4,'2014-04-16 10:02:32',NULL),(41,4,'2014-04-16 10:02:51',NULL),(42,4,'2014-04-16 10:02:58',NULL),(43,4,'2014-04-16 10:03:13',NULL),(44,4,'2014-04-16 10:03:24',NULL),(45,4,'2014-04-16 10:04:44',NULL),(46,4,'2014-04-16 10:41:51',NULL),(47,4,'2014-04-16 10:42:30',NULL),(48,4,'2014-04-16 10:43:39',NULL),(49,4,'2014-04-16 10:43:53',NULL),(50,4,'2014-04-16 10:44:21',NULL),(51,4,'2014-04-16 10:44:31',NULL),(52,4,'2014-04-16 10:45:18',NULL),(53,4,'2014-04-16 10:45:41',NULL),(54,4,'2014-04-16 10:48:10',NULL),(55,4,'2014-04-16 10:48:32',NULL),(56,4,'2014-04-16 10:48:45',NULL),(57,4,'2014-04-16 10:49:01',NULL),(58,4,'2014-04-16 10:49:04',NULL),(59,4,'2014-04-16 10:49:52',NULL),(60,4,'2014-04-16 10:50:08',NULL),(61,4,'2014-04-16 10:51:06',NULL),(62,4,'2014-04-16 10:51:48',NULL),(63,4,'2014-04-16 10:52:14',NULL),(64,4,'2014-04-16 10:52:24',NULL),(65,4,'2014-04-16 10:52:56',NULL),(66,4,'2014-04-16 10:53:05',NULL),(67,4,'2014-04-16 10:53:40',NULL),(68,4,'2014-04-16 10:54:51',NULL),(69,4,'2014-04-16 10:55:27',NULL),(70,4,'2014-04-16 10:55:53',NULL),(71,4,'2014-04-16 10:56:02',NULL),(72,4,'2014-04-16 10:56:08',NULL),(73,4,'2014-04-16 10:56:30',NULL),(74,4,'2014-04-16 10:56:43',NULL),(75,4,'2014-04-16 10:57:01',NULL),(76,4,'2014-04-16 10:57:08',NULL),(77,4,'2014-04-16 10:57:15',NULL),(78,4,'2014-04-16 10:57:23',NULL),(79,4,'2014-04-16 10:57:28',NULL),(80,4,'2014-04-16 10:57:50',NULL),(81,4,'2014-04-16 10:58:13',NULL),(82,4,'2014-04-16 10:58:33',NULL),(83,4,'2014-04-16 10:59:05',NULL),(84,4,'2014-04-16 10:59:17',NULL),(85,4,'2014-04-16 11:01:37',NULL),(86,4,'2014-04-16 11:04:15',NULL),(87,4,'2014-04-16 11:05:11',NULL),(88,4,'2014-04-16 11:05:14',NULL),(89,4,'2014-04-16 11:06:19',NULL),(90,4,'2014-04-16 11:06:47',NULL),(91,4,'2014-04-16 11:07:10',NULL),(92,4,'2014-04-16 11:08:19',NULL),(93,4,'2014-04-16 11:08:29',NULL),(94,4,'2014-04-16 11:08:40',NULL),(95,4,'2014-04-16 11:09:08',NULL),(96,4,'2014-04-16 11:16:34',NULL),(97,5,'2014-04-16 11:16:56',NULL),(98,7,'2014-04-16 13:37:55',NULL),(99,7,'2014-04-16 13:39:11',NULL),(100,7,'2014-04-16 13:40:07',NULL),(101,7,'2014-04-16 13:41:02',NULL),(102,7,'2014-04-16 13:41:05',NULL),(103,7,'2014-04-16 13:41:11',NULL),(104,7,'2014-04-16 13:48:30',NULL),(105,7,'2014-04-16 13:49:33',NULL),(106,7,'2014-04-16 13:54:56',NULL),(107,7,'2014-04-16 13:56:51',NULL),(108,7,'2014-04-16 14:12:08',NULL),(109,7,'2014-04-16 14:12:44',NULL),(110,7,'2014-04-16 14:15:24',NULL),(111,7,'2014-04-16 14:16:12',NULL),(112,7,'2014-04-16 14:16:33',NULL),(113,7,'2014-04-16 14:17:05',NULL),(114,7,'2014-04-16 14:19:00',NULL),(115,7,'2014-04-16 14:19:23',NULL),(116,7,'2014-04-16 14:19:29',NULL),(117,7,'2014-04-16 14:19:34',NULL),(118,7,'2014-04-16 14:20:14',NULL),(119,7,'2014-04-16 14:20:34',NULL),(120,7,'2014-04-16 14:20:38',NULL),(121,7,'2014-04-16 14:21:39',NULL),(122,7,'2014-04-16 14:21:54',NULL),(123,4,'2014-04-16 14:37:54',NULL),(124,4,'2014-04-16 14:38:47',NULL),(125,4,'2014-04-16 15:08:50',NULL); -/*!40000 ALTER TABLE `View` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2014-04-17 17:20:10 diff --git a/docs/orcamentos_diagram.asta.bak b/docs/orcamentos_diagram.asta.bak deleted file mode 100644 index 7a10d10f8da65d9da458464da0671c611add6660..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28328 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 wK!GXAf Date: Wed, 20 Aug 2014 11:47:19 -0300 Subject: [PATCH 09/10] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20comando=20com?= =?UTF-8?q?=20php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 626a984..077af44 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ $ ./bin/orcamentos ou ```bash -$ php bin/orcamentos +$ php bin/orcamentos.php ``` Executando o comando acima será exibido os comandos disponiveis, para executar algum comando disponível basta exectuar: @@ -69,7 +69,7 @@ $ ./bin/orcamentos comando ou ```bash -$ php bin/orcamentos comando +$ php bin/orcamentos.php comando ``` ### Configuração From 8d625850723de12a13b3abe263622b6abd2a64dc Mon Sep 17 00:00:00 2001 From: Vitor de Moraes Date: Wed, 20 Aug 2014 11:52:02 -0300 Subject: [PATCH 10/10] Alterando o nome da tabela da migrations --- migrations.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations.yml b/migrations.yml index 9e285f7..a9e9218 100644 --- a/migrations.yml +++ b/migrations.yml @@ -1,4 +1,4 @@ name: Gerenciamento de Orcamentos - Migrations migrations_namespace: Orcamentos\Migrations -table_name: doctrine_migration_versions +table_name: doctrine_migration migrations_directory: src/Orcamentos/Migrations