@@ -820,6 +820,199 @@ <h2 id="paso-4-realizar-pruebas"><a class="anchor" href="#paso-4-realizar-prueba
820820</ div >
821821</ div >
822822< div class ="sect1 ">
823+ < h2 id ="cómo-usar-sqlite-en-vez-de-postgres "> < a class ="anchor " href ="#cómo-usar-sqlite-en-vez-de-postgres "> </ a > Cómo usar SQLite en vez de Postgres</ h2 >
824+ < div class ="sectionbody ">
825+ < div class ="sect2 ">
826+ < h3 id ="1-cambiar-el-repo "> < a class ="anchor " href ="#1-cambiar-el-repo "> </ a > 1. Cambiar el Repo</ h3 >
827+ < div class ="paragraph ">
828+ < p > En < code > .lib/stoic_quotes/repo.ex</ code > , reemplazar:</ p >
829+ </ div >
830+ < div class ="listingblock ">
831+ < div class ="content ">
832+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> use AshPostgres.Repo,
833+ otp_app: :stoic_quotes</ code > </ pre >
834+ </ div >
835+ </ div >
836+ < div class ="paragraph ">
837+ < p > Por:</ p >
838+ </ div >
839+ < div class ="listingblock ">
840+ < div class ="content ">
841+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> use AshSqlite.Repo,
842+ otp_app: :stoic_quotes</ code > </ pre >
843+ </ div >
844+ </ div >
845+ < div class ="paragraph ">
846+ < p > Eliminar las funciones < code > prefer_transaction?</ code > y < code > installed_extensions</ code > si existen en el módulo.</ p >
847+ </ div >
848+ </ div >
849+ < div class ="sect2 ">
850+ < h3 id ="2-instalar-la-extensión-de-sqlite "> < a class ="anchor " href ="#2-instalar-la-extensión-de-sqlite "> </ a > 2. Instalar la extensión de SQLite</ h3 >
851+ < div class ="listingblock ">
852+ < div class ="content ">
853+ < pre class ="highlightjs highlight "> < code class ="language-bash hljs " data-lang ="bash "> mix igniter.install ash_sqlite</ code > </ pre >
854+ </ div >
855+ </ div >
856+ </ div >
857+ < div class ="sect2 ">
858+ < h3 id ="3-actualizar-configuraciones "> < a class ="anchor " href ="#3-actualizar-configuraciones "> </ a > 3. Actualizar configuraciones</ h3 >
859+ < div class ="paragraph ">
860+ < p > En < code > config/dev.exs</ code > , cambiar:</ p >
861+ </ div >
862+ < div class ="listingblock ">
863+ < div class ="content ">
864+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> config :stoic_quotes, StoicQuotes.Repo,
865+ username: "postgres",
866+ password: "postgres",
867+ hostname: "localhost",
868+ database: "stoic_quotes_dev",
869+ stacktrace: true,
870+ show_sensitive_data_on_connection_error: true,
871+ pool_size: 10</ code > </ pre >
872+ </ div >
873+ </ div >
874+ < div class ="paragraph ">
875+ < p > Por:</ p >
876+ </ div >
877+ < div class ="listingblock ">
878+ < div class ="content ">
879+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> config :stoic_quotes, StoicQuotes.Repo,
880+ database: Path.join(__DIR__, "../data.db"),
881+ show_sensitive_data_on_connection_error: true,
882+ pool_size: 10</ code > </ pre >
883+ </ div >
884+ </ div >
885+ < div class ="paragraph ">
886+ < p > En < code > config/test.exs</ code > , cambiar:</ p >
887+ </ div >
888+ < div class ="listingblock ">
889+ < div class ="content ">
890+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> config :stoic_quotes, StoicQuotes.Repo,
891+ username: "postgres",
892+ password: "postgres",
893+ hostname: "localhost",
894+ database: "stoic_quotes_test#{System.get_env("MIX_TEST_PARTITION")}",
895+ pool: Ecto.Adapters.SQL.Sandbox,
896+ pool_size: System.schedulers_online() * 2</ code > </ pre >
897+ </ div >
898+ </ div >
899+ < div class ="paragraph ">
900+ < p > Por:</ p >
901+ </ div >
902+ < div class ="listingblock ">
903+ < div class ="content ">
904+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> config :stoic_quotes, StoicQuotes.Repo,
905+ database: Path.join(__DIR__, "../data_#{System.get_env("MIX_TEST_PARTITION")}.db"),
906+ pool: Ecto.Adapters.SQL.Sandbox,
907+ pool_size: 10</ code > </ pre >
908+ </ div >
909+ </ div >
910+ </ div >
911+ < div class ="sect2 ">
912+ < h3 id ="4-actualizar-el-recurso "> < a class ="anchor " href ="#4-actualizar-el-recurso "> </ a > 4. Actualizar el Recurso</ h3 >
913+ < div class ="paragraph ">
914+ < p > En el archivo del Recurso (< code > lib/stoic_quotes/resources/quote.ex</ code > o similar), hacer dos cambios:</ p >
915+ </ div >
916+ < div class ="olist arabic ">
917+ < ol class ="arabic ">
918+ < li >
919+ < p > < strong > Reemplazar el bloque < code > postgres</ code > por < code > sqlite</ code > :</ strong > </ p >
920+ </ li >
921+ </ ol >
922+ </ div >
923+ < div class ="paragraph ">
924+ < p > De:</ p >
925+ </ div >
926+ < div class ="listingblock ">
927+ < div class ="content ">
928+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> postgres do
929+ table "quotes"
930+ repo StoicQuotes.Repo
931+ end</ code > </ pre >
932+ </ div >
933+ </ div >
934+ < div class ="paragraph ">
935+ < p > A:</ p >
936+ </ div >
937+ < div class ="listingblock ">
938+ < div class ="content ">
939+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> sqlite do
940+ table "quotes"
941+ repo StoicQuotes.Repo
942+ end</ code > </ pre >
943+ </ div >
944+ </ div >
945+ < div class ="olist arabic ">
946+ < ol class ="arabic ">
947+ < li >
948+ < p > < strong > Cambiar el < code > data_layer</ code > de Postgres a SQLite:</ strong > </ p >
949+ </ li >
950+ </ ol >
951+ </ div >
952+ < div class ="paragraph ">
953+ < p > De:</ p >
954+ </ div >
955+ < div class ="listingblock ">
956+ < div class ="content ">
957+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> use Ash.Resource,
958+ otp_app: :stoic_quotes,
959+ domain: StoicQuotes.Ash,
960+ extensions: [AshGraphql.Resource],
961+ data_layer: AshPostgres.DataLayer</ code > </ pre >
962+ </ div >
963+ </ div >
964+ < div class ="paragraph ">
965+ < p > A:</ p >
966+ </ div >
967+ < div class ="listingblock ">
968+ < div class ="content ">
969+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> use Ash.Resource,
970+ otp_app: :stoic_quotes,
971+ domain: StoicQuotes.Ash,
972+ extensions: [AshGraphql.Resource],
973+ data_layer: AshSqlite.DataLayer</ code > </ pre >
974+ </ div >
975+ </ div >
976+ </ div >
977+ < div class ="sect2 ">
978+ < h3 id ="5-limpiar-migraciones-antiguas-y-generar-nuevas "> < a class ="anchor " href ="#5-limpiar-migraciones-antiguas-y-generar-nuevas "> </ a > 5. Limpiar migraciones antiguas y generar nuevas</ h3 >
979+ < div class ="listingblock ">
980+ < div class ="content ">
981+ < pre class ="highlightjs highlight "> < code class ="language-bash hljs " data-lang ="bash "> # Eliminar directorios de migraciones anteriores
982+ rm -rf priv/resource_snapshots
983+ rm -rf priv/repo/migrations
984+
985+ # Generar nuevas migraciones compatibles con SQLite
986+ mix ash_sqlite.generate_migrations --name migrate_to_sqlite
987+
988+ # Ejecutar las migraciones
989+ mix ecto.migrate</ code > </ pre >
990+ </ div >
991+ </ div >
992+ </ div >
993+ < div class ="sect2 ">
994+ < h3 id ="6-remover-dependencia-de-postgres "> < a class ="anchor " href ="#6-remover-dependencia-de-postgres "> </ a > 6. Remover dependencia de Postgres</ h3 >
995+ < div class ="paragraph ">
996+ < p > Finalmente, eliminar la dependencia de < code > ash_postgres</ code > en el archivo < code > mix.exs</ code > :</ p >
997+ </ div >
998+ < div class ="listingblock ">
999+ < div class ="content ">
1000+ < pre class ="highlightjs highlight "> < code class ="language-elixir hljs " data-lang ="elixir "> # Remover de la lista de dependencias:
1001+ {:ash_postgres, "~> 2.0"},</ code > </ pre >
1002+ </ div >
1003+ </ div >
1004+ < div class ="paragraph ">
1005+ < p > Y correr:</ p >
1006+ </ div >
1007+ < div class ="listingblock ">
1008+ < div class ="content ">
1009+ < pre class ="highlightjs highlight "> < code class ="language-bash hljs " data-lang ="bash "> mix deps.get</ code > </ pre >
1010+ </ div >
1011+ </ div >
1012+ </ div >
1013+ </ div >
1014+ </ div >
1015+ < div class ="sect1 ">
8231016< h2 id ="referencias "> < a class ="anchor " href ="#referencias "> </ a > Referencias</ h2 >
8241017< div class ="sectionbody ">
8251018< div class ="ulist ">
0 commit comments