Mantener Anvil.works en sintonía con su archivo SQLite, en un horario
Escribe la consulta SQL una sola vez. Query Streams la ejecuta según tu programación (desde cada cinco minutos hasta semanalmente) y guarda las filas en tu tabla de datos de Anvil.works. Puedes buscar filas por clave para que los cambios se guarden y se eliminen las filas que no se incluyeron en la consulta, o simplemente añadirlas. Sin Zapier, sin scripts, sin exportaciones. La primera vez solo te llevará unos quince minutos, y el plan gratuito lo incluye.
Lo que obtendrás al final
Una tabla de datos de Anvil.works que almacena las filas que devuelve tu consulta SQLite y se actualiza periódicamente, cada cinco minutos o semanalmente, con un registro de los cambios realizados en cada ejecución. Algo así:
SQLite holds your data in a file. Your team works in Anvil.works. The usual bridge is a hand-written import in your app that breaks quietly and copies one row at a time. Query Streams Automation does it differently: the Agent that already reads your SQLite file runs your saved SQL on a schedule and writes the whole result into Anvil.works in one pass, matching rows by a key so the data table stays correct rather than growing.
Lo que necesitarás
Una cuenta de Query Streams
El plan gratuito es suficiente para esta guía. Regístrate en mi.querystreams.com.
SQLite conectado a través del Agente
The Agent installed on the computer that holds your SQLite file, or on one that reads it from a network share, with the connection added in Data Agents. Not done yet? Primero, conecta SQLite.; tarda unos diez minutos.
Una consulta guardada
La SELECCIÓN que desea mantener sincronizada, guardada en Generador de consultasEl paso 1 que se muestra a continuación ilustra un ejemplo. Si desea que las filas modificadas se actualicen directamente, incluya una columna que sea única para cada fila, como un ID.
Tu inicio de sesión de Anvil.works
Introduzca la dirección HTTPS de su aplicación Anvil y la clave de conector que configuró en la aplicación con connector.init_connector("key") del módulo querystreams. Query Streams comprueba las respuestas de la aplicación y muestra sus tablas de datos.
¿Dónde se realiza el trabajo? En el ordenador que ejecuta el Agente. Este ejecuta la consulta según lo programado y escribe las filas en Anvil.works, por lo que dicho ordenador debe permanecer encendido. Puede cerrar el navegador. Query Streams nunca almacena las filas.
File on another computer? The Agent does not have to run on the computer that holds your SQLite file: it can read the file from a network share. Reaching a file on a network share, below, shows what that takes.
Configúralo en seis pasos.
-
Guarda la consulta que deseas mantener sincronizada.
Abrir Generador de consultas, elige tu conexión SQLite (¿aún no está conectada? Empieza aquí), y escribe la sentencia SELECT que devuelva exactamente las filas y columnas que deseas en Anvil.works. Esta extrae algunas columnas de una clientes mesa:
Ejemplo · SQLSELECCIONAR customer_id, nombre, ciudad DE clientes ORDENAR POR nombre LIMITAR 100;
Ejecútalo y luego Guardar Asígnale un nombre que reconozcas, como “Pedidos para Anvil.works”. Mantén una columna que sea única por fila en la consulta SELECT, aquí. customer_idEsa es la clave que usa Full Sync para actualizar las filas directamente. Edita y guarda la consulta más tarde y la automatización aplicará el cambio en su siguiente ejecución.
-
Abra Automation y elija Anvil.works.
En el portal, abre Automatización (menú superior) Flujos → Programado → Automatización) y haga clic Nueva automatización. El mago tiene cinco pasos cortos. En Primer paso haga clic en el Anvil.works tarjeta.
¿Ves "Antes de empezar" en su lugar? El asistente solo se abre cuando un agente está conectado y existe al menos una consulta guardada. La página indica cuál de las tres consultas falta y proporciona un enlace para acceder a ella.
-
Conectar Anvil.works
En Paso 2 La página te guía a través del lado de Anvil: agrega el código de dependencia de Query Streams a tu aplicación en Configuración → Dependencias → Terceros, crear un módulo de servidor con
from querystreams import connectoryconector.inicializar_conector("tu clave")y haga clic Generar clave segura para hacer esa llave. Luego ingrese su URL de la aplicación Anvil y lo mismo Clave de autenticación del conector y haga clic Conexión de pruebaTu aplicación necesita Tablas aceleradas Activado (Configuración → Tablas de datos); la página lo vuelve a comprobar por usted. -
Elige dónde terminan las filas
En Paso 3 elige el Tabla de datos Las filas deben insertarse en la tabla. Si desea una tabla vacía, créela primero en su aplicación Anvil. Si ya contiene filas, se mostrará una vista previa que explica qué haría cada modo de sincronización con ellas. Una automatización por tabla.
-
Seleccione la consulta y decida cómo se mostrarán las filas.
En Paso 4 abrir el Consulta guardada Enumere y seleccione la consulta del paso 1. Query Streams la ejecuta una vez para leer las columnas, le indica cuántas filas devuelve y muestra dos opciones:
Agregar · rápidoAñada
Cada ejecución agrega las filas de la consulta al final de la tabla de datos. No se actualiza ni se elimina nada, por lo que es la opción más rápida para los registros, eventos e historial que desee acumular. No se necesita una columna clave. Una fila que no cambia no se agrega de nuevo; una fila cuyos valores cambiaron se agrega debajo como una nueva línea y la anterior permanece.
Sincronización completa · espejosSincronización total
Las filas coinciden con un llave Columna como el ID del pedido. Se añaden filas nuevas, se actualizan las filas modificadas y se eliminan las que ya no se obtienen de la consulta, incluidas las que se introdujeron manualmente en la tabla de datos; por lo tanto, conviene guardar las filas introducidas manualmente en otra tabla de datos. Esta es la opción preferida para inventario, flujos de trabajo, datos maestros y paneles de control.
La sincronización completa se configura por columna, lo que la hace útil en una tabla de datos compartida:
- Llave
- La columna que identifica una fila, por ejemplo id_pedidoDebe ser único en el resultado de la consulta; Query Streams lo comprueba por usted y rechaza los duplicados.
- Sincronización
- Sobrescribe los datos de SQLite en cada ejecución. Si alguien edita una columna Sync en Anvil.works, la siguiente ejecución restaura el valor original.
- Preservar
- Se escribe cuando llega la fila por primera vez y nunca se vuelve a comparar, por lo que un cambio en SQLite no activa una actualización. Para las notas, los responsables y las fechas de seguimiento que su equipo introduce manualmente, utilice una columna que no esté en la consulta: las columnas que solo existen en Anvil.works nunca se ven afectadas por la sincronización.
¿Cuál es más rápido? La función "Añadir" escribe sin leer primero la tabla de datos. La función "Sincronización completa" la lee, compara cada fila y escribe solo las diferencias, por lo que tarda más, pero la tabla de datos siempre coincide con la consulta. Puedes cambiar de opción más adelante desde el panel de edición de la automatización.
Para obtener una tabla de datos en la que pueda confiar, haga clic aquí. Crear todas las columnas como Sync, luego haga clic en el icono de la llave en customer_id para hacerlo el LlaveQuery Streams analiza todo el resultado para confirmar que la clave es única y le advierte si no lo es. Mantenga las notas de su equipo en columnas que no formen parte de la consulta; estas nunca se modifican. Para un registro que solo debería crecer, haga clic aquí. Crear todas las columnas como Conservar En su lugar, omita la clave. Haga clic. Continuar.
-
Establece el horario, ponle nombre, créalo.
En Paso 5 elegir Funcionar según un horario y elige uno Frecuencia:
Frecuencia Corre Cada 5 minutos cada 5 minutos, la velocidad más rápida permitida Cada 15 minutos cada 15 minutos Cada 30 minutos cada 30 minutos Cada hora al comienzo de cada hora Todos los días a las 9 de la mañana. todos los días a las 9:00, la hora predeterminada Todos los días a las 6 de la mañana. Todos los días a las 6:00 De lunes a viernes a las 9 de la mañana. De lunes a viernes a las 9:00 Semanalmente (lunes a las 9:00) Todos los lunes a las 9:00 Horario personalizado tus propios minutos, horas, días de la semana o día del mes Los tiempos siguen al Zona horaria tú eliges, que comienza como el de tu navegador. También puedes elegir Solo manual y presione Ejecutar Cuando quieras; puedes añadir una programación más adelante desde el panel de edición de la automatización. Las ejecuciones programadas se realizan en el Agente, por lo que continúan incluso con el navegador cerrado. Si el ordenador donde se ejecuta el Agente está apagado cuando debería realizarse una ejecución, esta se ejecutará una sola vez, poco después de que el Agente se reinicie.
Dale un Nombre de la integración, como “Pedidos a Anvil.works, diariamente”, consulte el Listo para crear resumen y clic Crear automatización. De vuelta en la página de Automatización, pulse Ejecutar Realiza la primera sincronización ahora, en lugar de esperar a la programación. Abre Anvil.works: las filas están ahí, debajo de los encabezados de columna.
Eso es todo. A partir de ahora, la tabla de datos se actualiza automáticamente. Solo las filas que devuelve la consulta salen de la red, y nadie tiene que recordar ejecutar nada.
Lo que ves después
El Página de automatización Enumera cada automatización con su estado, origen, destino, clave, programación, última sincronización y número de filas. Abra una para la Ejecuciones pestaña: cada ejecución con su activador (manual o programado), duración y filas creadas, actualizadas, eliminadas y sin cambios. A Actuación La pestaña muestra los datos procesados y la tasa de éxito durante un período de 7 a 90 días.
Se te informa cuándo se detiene
Cada organización tiene una Problemas de sincronización Regla de alerta desde el primer día: un aviso en la aplicación y un correo electrónico cuando falla la sincronización, y otro cuando se resuelve. Un mensaje por incidente, nunca uno por reintento. Desactívala o cambia los canales en Streams → Alertas e informes.
Se detiene cuando debería.
Si Anvil.works deja de aceptar la conexión o se elimina el conector de datos, la automatización se pausa e indica el motivo. Vuelva a conectarse o seleccione una nueva fuente y pulse Reanudar. Otros errores mantienen la programación en marcha y se muestran en la fila correspondiente.
Las claves deben ser únicas
Antes de cada sincronización completa, Query Streams comprueba que los valores clave del resultado de la consulta sean únicos y, si no lo son, rechaza la ejecución. De esta forma, no se almacenan datos incompletos en la tabla de datos. Mantén la columna clave en Anvil; las columnas que la consulta desconoce nunca se eliminan durante la sincronización.
Lo que permiten los planes
La automatización está incluida en todos los planes, incluido el gratuito, sin límite en la cantidad de automatizaciones que puedes crear. Lo que sí limita cada plan es la cantidad de filas que una consulta puede devolver por ejecución:
| Plan | Filas por carrera |
|---|---|
| Gratis | 125 |
| Núcleo personal | 500 |
| Personal Plus | 1,000 |
| Núcleo empresarial | 2,500 |
| Negocios Plus | 5,000 |
| Business Max | 10,000 |
| Núcleo empresarial | 25,000 |
| Enterprise Plus | 100,000 |
| Enterprise Max | 250,000 |
Si una consulta devuelve más resultados, la ejecución se pausa en lugar de interrumpirse, y la automatización indica qué plan se ajusta mejor o sugiere agregar un filtro, como un rango de fechas. Cada ejecución exitosa también se contabiliza dentro de su asignación de Data Realm, el mismo grupo que utilizan sus consultas de Excel y Hojas de cálculo. Consulte la página de precios. para las asignaciones.
Buenos pasos a seguir
- Agregar un filtro a la consulta, como los últimos 90 días, para que la tabla de datos se mantenga pequeña y rápida y se ajuste al límite de filas de su plan.
- Mantén las notas escritas a mano en columnas separadas., fuera de la consulta, por lo que sobreviven a cada sincronización.
- Agrupa tus automatizaciones Desde el panel de edición, una vez que tenga algunos, la página de automatización filtra por grupo.
Reaching a file on a network share
The Agent opens files as a background service, not as you, so a file on another computer needs one extra step. Which step depends on the computer the Agent runs on.
If the test cannot get to the share, look for these words in its result: unreachable means the Agent’s computer got no answer from the server. On Linux or a Mac, not mounted means the share still has to be mounted, and that message includes the exact mount command for your server.
SQLite file on a share? Dejar Read-Only (Immutable) ticked, as it is by default; reads then take a point-in-time view of the file without locks. SQLite cannot use its WAL mode over a network, so with that box unticked a WAL-mode database on a \\servidor\recurso compartido path is refused, and the test says it is a WAL-mode SQLite database.
Test failed on a share?
Every run reaches the file the same way the connection test does. If runs start failing after something changed on the file server, a new password for example, open the connector in Agentes de datos y haga clic Probar la conexión. The test result, and the line under the file path, name the problem:
| Mensaje | Causa | Arreglar |
|---|---|---|
| SQLite database file not found: followed by a \\servidor\recurso compartido path you know is right | No login is stored, so the Agent tried the share as its own account and could not see the file: the share turned that account away, or the server did not answer. In the first case the line under the path says Access denied for the agent’s service account. | Haga clic en Service identity under the path and store a login that can read the share. If the line under the path does not say access denied, check that the Agent’s computer can open the share at all. |
| Share \\server: access denied — add credentials for this server | A login is stored, but that account has no permission on the share, or another sign-in to the same server is in the way; the message before this line says which. | Ask whoever runs the server to give that account read access, or store an account that has it. For a sign-in in the way, see the two rows on one login per server below. |
| Share \\server: the credentials were refused — check the username and password | The server turned the stored login down: a typo, the wrong domain, or a password changed since it was saved, which also stops runs that used to work. | Click the chip under the path and type the password again; for an account made on the server itself, leave Domain blank. After a refused login the Agent waits a minute before it tries that same one again, so the account is not locked out; saving a corrected password tries straight away. |
| Share \\server: server unreachable from the agent machine | The Agent’s computer got no answer from the server: a wrong server name, the server is off, or a firewall blocks file sharing. | On the Agent’s computer, open the same \\servidor\recurso compartido path in File Explorer. If that fails too, it is a network problem for whoever runs the network. |
| Another connector on this agent already signs in to \\server as … | Windows lets one computer sign in to a server as one account at a time, and another connector on this Agent uses a different login for that server. | Store the same login the other connector uses, or change it on every connector that reads that server. |
| Windows already holds a sign-in to \\server for … | Something on the Agent’s computer other than the Agent is already signed in to that server as a different account, and the Agent never closes a sign-in it did not make. | Do what the rest of the message says: use that same account on this connector, or close the other sign-in on the Agent’s computer. If it says the share is already readable through that sign-in, choose Use service identity in the login box instead. |
| This agent build cannot sign in to \\server with stored credentials. | The Agent is an older version that cannot use stored logins. | Update the Agent, then test again. |
| \\server\share is not mounted on this Linux agent (o macOS agent) | The Agent runs on Linux or a Mac and the share has not been mounted on its computer yet; logins stored in the Portal are not used there. | Mount it with the command the message gives you, then test again. Step by step: en Linux · on a Mac. |
| … is a WAL-mode SQLite database | The database uses SQLite’s WAL mode, which cannot work over a network share, and Read-Only (Immutable) is unticked on the connector. | Tick Read-Only (Immutable) on the connector and test again. |
Preguntas que hace la gente
¿La sincronización sobrescribirá las notas que mi equipo agregue en Anvil.works?
No si las notas se encuentran en su propia columna. Las columnas que existen solo en Anvil.works y no en su consulta nunca se modifican, así que agregue una columna de Notas o Propietario junto a las sincronizadas y escriba allí. Las columnas marcadas Sincronización se restablecen al valor de SQLite en cada ejecución; Preservar Las columnas se rellenan cuando llega una fila por primera vez y no se comparan posteriormente.
¿Mis datos de SQLite se almacenan mediante Query Streams?
No. El agente ejecuta la consulta en su sistema y envía las filas directamente a Anvil.works a través de un enlace cifrado. Query Streams conserva la configuración, la programación y el número de filas por ejecución, no las filas en sí.
¿Es necesario que mi ordenador permanezca encendido?
Quien ejecuta el Agente sí lo hace, ya que es el Agente el que ejecuta la consulta y escribe en Anvil.works. Puedes cerrar tu portátil y tu navegador. Si ese ordenador está apagado cuando debería ejecutarse la consulta, la ejecución omitida se producirá una sola vez, poco después de que el Agente se reinicie.
¿Puedo modificar la consulta más tarde?
Sí. Edítalo y guárdalo en el Generador de consultas y la siguiente ejecución utilizará automáticamente la nueva versión. Si añades o eliminas columnas, abre el panel de edición de la automatización para asignarlas.
¿Pueden dos automatizaciones escribir en la misma tabla de datos?
No, una automatización por tabla de datos. Dirige una segunda automatización a una tabla de datos diferente, o amplía la consulta que sigue a la primera.
¿El plan gratuito realmente cubre esto?
Sí. El plan gratuito es permanente, no una prueba que caduca. La automatización está incluida en todos los planes; lo que varía según el plan es la cantidad de filas que una consulta puede devolver por ejecución. Consulta exactamente qué incluye el plan gratuito en la página web. página de precios.
Guías relacionadas
Cada guía para SQLite
¿No es exactamente lo que buscas?
- ¿Tienes una carpeta de archivos SQLite en lugar de uno? SQLite Folder combina las tablas que comparten un nombre en una sola tabla y etiqueta cada fila con el archivo del que proviene → SQLite Folder
Setup trouble?
- Agent says the file or folder does not exist, or access is denied? Mapped drives, network shares, OneDrive and Linux home folders each need one fix → Where the Agent can read files from
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

